遍历 Python 中的列表列表

新手上路,请多包涵

我想遍历列表列表。

我也想遍历列表中不规则嵌套的列表。

谁能让我知道我该怎么做?

 x = [u'sam', [['Test', [['one', [], []]], [(u'file.txt', ['id', 1, 0])]], ['Test2', [], [(u'file2.txt', ['id', 1, 2])]]], []]

原文由 sam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 301
2 个回答

这个 traverse 生成器函数可用于迭代所有值:

 def traverse(o, tree_types=(list, tuple)):
    if isinstance(o, tree_types):
        for value in o:
            for subvalue in traverse(value, tree_types):
                yield subvalue
    else:
        yield o

data = [(1,1,(1,1,(1,"1"))),(1,1,1),(1,),1,(1,(1,("1",)))]
print list(traverse(data))
# prints [1, 1, 1, 1, 1, '1', 1, 1, 1, 1, 1, 1, 1, '1']

for value in traverse(data):
    print repr(value)
# prints
# 1
# 1
# 1
# 1
# 1
# '1'
# 1
# 1
# 1
# 1
# 1
# 1
# 1
# '1'

原文由 Jeremy 发布,翻译遵循 CC BY-SA 3.0 许可协议

所以等等,这只是一个列表中的列表?

最简单的方法可能就是使用嵌套的 for 循环:

 >>> a = [[1, 3, 4], [2, 4, 4], [3, 4, 5]]
>>> a
[[1, 3, 4], [2, 4, 4], [3, 4, 5]]
>>> for list in a:
...     for number in list:
...         print number
...
1
3
4
2
4
4
3
4
5

还是比这更复杂?任意嵌套什么的?让我们知道是否还有其他问题。

此外,出于性能原因,您可能希望查看使用列表理解来执行此操作:

http://docs.python.org/tutorial/datastructures.html#nested-list-comprehensions

原文由 victorhooi 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏