为了账号安全,请及时绑定邮箱和手机立即绑定

拼合列表清单

拼合列表清单

30秒到达战场 2019-11-27 14:20:39
我在Python中使用方括号有问题。我写了一个代码,产生以下输出:[[180.0], [173.8], [164.2], [156.5], [147.2], [138.2]]但是我想以此进行一些计算,但是方括号不允许我这样做。如何卸下支架?我看到了一些可以做到这一点的例子,但是我不能将它们应用于这种情况。
查看完整描述

3 回答

?
慕尼黑5688855

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]


查看完整回答
反对 回复 2019-11-27
?
海绵宝宝撒

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等,然后可以将其用于数学运算。


如果您要收集数据,将有某种括弧或括号。


请注意,此解决方案专门针对您的问题/问题,它没有提供通用的解决方案。即,它将适合您的情况。


查看完整回答
反对 回复 2019-11-27
  • 3 回答
  • 0 关注
  • 467 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信