pythonic方法来展平嵌套列表? [复制]

Posted

技术标签:

【中文标题】pythonic方法来展平嵌套列表? [复制]【英文标题】:pythonic way to flatten nested lists? [duplicate] 【发布时间】:2012-11-18 23:29:21 【问题描述】:

可能重复:join list of lists in pythonFlatten (an irregular) list of lists in PythonHow can I flatten lists without splitting strings?

我有一个列表元组列表树,我想将它展平以进行查询,以便我可以打印每个元组的第一个列表的所有项目。

我可以通过 for 循环做到这一点

bigNest = [([item1,item2],[]),([item3],[item4])]
mergedlist = []
for listItem in bigNest:
   mergedlist += listItem[0]
print mergedList

我想知道是否有更简单/更快的方法也适用于更大的元组。

【问题讨论】:

你搜索过“flatten”吗?这个问题已经回答了 100 次。 有很多不同的方法可以做,正如前面的答案中所讨论的(这就是我投票结束的原因)。有简洁但缓慢的 (sum(nested_list, [])) 或各种基于 itertools 的解决方案(例如 itertools.chain),它们的扩展效果会更好。 我确实搜索过,但显然我没有找到正确的关键字,因为没有出现上述主题 另外,抱歉,上面的“可能重复”都没有回答我的问题。如果我愿意,我知道如何变平。我想要pythonic的方式来做到这一点。列出的都比我的大! print list(chain.from_iterable(item for item in chain.from_iterable(bigNest) if item)) 【参考方案1】:

编辑:抱歉上一篇文章有​​误,你可以做一个列表理解:

mergedlist = []
foovar = [mergedlist.extend(i[0]) for i in bigNest]

【讨论】:

我可以简单地把它打印出来吗? IE。我可以print [mergedlist.extend(i) for i in bigNest]吗? 另外,这不会通过添加元组来扩展我的列表吗?我需要更深入。 哦,是的,对不起,我的意思是.extend(i[0])

以上是关于pythonic方法来展平嵌套列表? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在Python中展平一个浅表[重复]

如何在javascript中展平嵌套数组? [复制]

在python中展平嵌套字符串列表

Python:使用索引展平嵌套列表

展平嵌套数组。 (爪哇)

通过平均向量来展平嵌套列表