拼合列表清单

我在Python中使用方括号有问题。我写了一个代码,产生以下输出:


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

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


如何卸下支架?我看到了一些可以做到这一点的例子,但是我不能将它们应用于这种情况。


30秒到达战场
浏览 468回答 3
3回答

慕尼黑5688855

使用嵌套列表理解将列表弄平以“除去括号”。这将取消嵌套存储在列表中的每个列表的嵌套!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]

海绵宝宝撒

给定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等,然后可以将其用于数学运算。如果您要收集数据,将有某种括弧或括号。请注意,此解决方案专门针对您的问题/问题,它没有提供通用的解决方案。即,它将适合您的情况。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python