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方法来展平嵌套列表? [复制]的主要内容,如果未能解决你的问题,请参考以下文章