3 回答
TA贡献1848条经验 获得超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的求值速度比解开循环快得多,并且消除了添加调用!
如果您在子列表中有多个项目,则列表组合甚至会使其扁平化。即
>>> 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]
TA贡献1809条经验 获得超8个赞
给定
d = [[180.0], [173.8], [164.2], [156.5], [147.2], [138.2]]
和您的特定问题: 如何移除支架?
使用列表理解:
new_d = [i[0] for i in d]
会给你这个
[180.0, 173.8, 164.2, 156.5, 147.2, 138.2]
那么您可以使用适当的索引访问各个项目,例如,new_d[0]将给您180.0等,然后可以将其用于数学运算。
如果您要收集数据,将有某种括弧或括号。
请注意,此解决方案专门针对您的问题/问题,它没有提供通用的解决方案。即,它将适合您的情况。
添加回答
举报