任何人都可以解释当我运行下面的 python 片段时发生了什么?
import itertools
def prob():
testlists = itertools.combinations([1,2,3,4,5,6,7,8,9,0],4)
for itervalue in range(5,50):
for tlist in testlists:
print itervalue
我的预期行为是将 itervalue 从 5 到 50 的每个值多次打印到屏幕上(测试列表中的每个列表一次)。例如,如果我将测试列表定义为,就会发生这种情况。
testlists = [[1,2,3],[5,2,1],[3,2,9]]
实际发生的是只有第一个迭代值被打印到输出(5 被打印了数百次)。前任:
5
5
5
#and so on
这里到底发生了什么?一般来说,我是 python 和动态语言的新手。谢谢你的帮助。
我在运行 python 2.6.6 和 2.7.3 的计算机上对此进行了测试。