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

可能重复:
join list of lists in python
Flatten (an irregular) list of lists in Python
How 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))

标签: python list flatten


【解决方案1】:

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

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

【讨论】:

  • 我可以简单地把它打印出来吗? IE。我可以print [mergedlist.extend(i) for i in bigNest]吗?
  • 另外,这不会通过添加元组来扩展我的列表吗?我需要更深入。
  • 哦,是的,对不起,我的意思是.extend(i[0])
猜你喜欢
  • 1970-01-01
  • 2013-12-05
  • 2021-12-13
  • 2016-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-05
相关资源
最近更新 更多