gpt4 book ai didi

python - 扁平化列表列表

转载 作者:IT老高 更新时间:2023-10-28 21:11:58 27 4
gpt4 key购买 nike

我在 Python 中遇到了方括号问题。我编写了一个产生以下输出的代码:

[[180.0], [173.8], [164.2], [156.5], [147.2], [138.2]]

但我想用它进行一些计算,但方括号不允许我这样做。

如何删除括号?我看到了一些例子来做到这一点,但我无法将它们应用到这个案例中。

最佳答案

使用嵌套列表推导将列表展平为“删除括号”。这将取消嵌套存储在您的列表列表中的每个列表!

list_of_lists = [[180.0], [173.8], [164.2], [156.5], [147.2], [138.2]]
flattened = [val for sublist in list_of_lists for val in sublist]

嵌套列表推导的评估方式与它们展开的方式相同(即为每个新循环添加换行符和制表符。所以在这种情况下:

flattened = [val for sublist in list_of_lists for val in sublist]

相当于:

flattened = []
for sublist in list_of_lists:
for val in sublist:
flattened.append(val)

最大的不同是列表 comp 的计算速度比 unraveled 循环快得多,并且消除了 append 调用!

如果您在子列表中有多个项目,则列表组合甚至会将其展平。即

>>> list_of_lists = [[180.0, 1, 2, 3], [173.8], [164.2], [156.5], [147.2], [138.2]]
>>> flattened = [val for sublist in list_of_lists for val in sublist]
>>> flattened
[180.0, 1, 2, 3, 173.8, 164.2, 156.5, 147.2,138.2]

关于python - 扁平化列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11264684/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com