开发者社区> 问答> 正文

拼合列表清单

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

[[180.0], [173.8], [164.2], [156.5], [147.2], [138.2]] 但是我想以此进行一些计算,但是方括号不允许我这样做。

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

展开
收起
保持可爱mmm 2020-02-08 13:45:55 375 0
1 条回答
写回答
取消 提交回答
  • 使用嵌套列表理解将列表弄平以“除去括号”。这将取消嵌套存储在列表中的每个列表的嵌套!

    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的求值速度比解开循环快得多,并且消除了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]

    2020-02-08 13:46:08
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载