是否存在单行或Pythonic(我意识到前者并不一定意味着后者)编写以下嵌套循环的方式?
for i in some_list:
for j in i:
# do something
我已经尝试了
import itertools
for i,j in itertools.product(some_list,i):
# do something
但我在分配错误之前得到了一个参考,我认为这是有道理的。到目前为止,我一直无法找到这个问题的答案......有什么建议吗?谢谢!
答案 0 :(得分:2)
如果您想依次遍历some_list
中的每个子列表,可以使用itertools.chain
:
for j in itertools.chain(*some_list):
一个简短的演示:
>>> import itertools
>>> some_list = [[1, 2], [3, 4]]
>>> for j in itertools.chain(*some_list):
print j
1
2
3
4
>>> for j in itertools.chain.from_iterable(some_list):
print j
1
2
3
4
(除了轻微的语法更改之外,请参阅this question了解差异的解释。)
答案 1 :(得分:2)
使用链:
import itertools
some_list = [[1,2,3,4],[3,4,5,6]]
for i in itertools.chain(*some_list):
print i
1
2
3
4
3
4
5
6