我只是浏览itertools
文档,寻找摆脱嵌套for循环的方法:
for a in b:
for c in b:
<statement>
但是,我找不到任何东西。这是不是有功能?我应该保留嵌套循环吗?
答案 0 :(得分:4)
是的。它被称为itertools.product
例如:
import itertools
for item in itertools.product([0, 1], repeat = 2):
print item
<强>输出强>
(0, 0)
(0, 1)
(1, 0)
(1, 1)
相当于
b = [0, 1]
for a in b:
for c in b:
print (a, c)
答案 1 :(得分:4)
您可以使用chain.from iterable
:
from itertools import chain
b = [[1, 2, 3], [4, 5, 6]]
for i in chain.from_iterable(b):
print i
理想情况下,b
具有所有值。所以这转化为:
for a in b:
for c in a:
print c
工作example。您真正要做的是展平一个列表,这实际上包含在recipes for itertools
中。