这可能是一个简单的问题,但我的代码只在末尾执行外部 for 循环,并在开头执行一次。它应该遍历每个数字组合的每个组合
from itertools import permutations as p
combos = p(['/','*','-','+'], 3)
numbers = p(['9','7','7','6'])
for y in numbers:
print(y)
for x in combos:
print(x)
我做错了什么?它输出:
('9', '7', '7', '6')
('/', '*', '-')
('/', '*', '+')
('/', '-', '*')
('/', '-', '+')
('/', '+', '*')
('/', '+', '-')
('*', '/', '-')
('*', '/', '+')
('*', '-', '/')
('*', '-', '+')
('*', '+', '/')
('*', '+', '-')
('-', '/', '*')
('-', '/', '+')
('-', '*', '/')
('-', '*', '+')
('-', '+', '/')
('-', '+', '*')
('+', '/', '*')
('+', '/', '-')
('+', '*', '/')
('+', '*', '-')
('+', '-', '/')
('+', '-', '*')
('9', '7', '6', '7')
('9', '7', '7', '6')
('9', '7', '6', '7')
('9', '6', '7', '7')
('9', '6', '7', '7')
('7', '9', '7', '6')
('7', '9', '6', '7')
('7', '7', '9', '6')
('7', '7', '6', '9')
('7', '6', '9', '7')
('7', '6', '7', '9')
('7', '9', '7', '6')
('7', '9', '6', '7')
('7', '7', '9', '6')
('7', '7', '6', '9')
('7', '6', '9', '7')
('7', '6', '7', '9')
('6', '9', '7', '7')
('6', '9', '7', '7')
('6', '7', '9', '7')
('6', '7', '7', '9')
('6', '7', '9', '7')
('6', '7', '7', '9')
最佳答案
itertools.permutations 产生一个迭代器。这意味着它可以被消耗掉。一旦消耗,后续循环将跳过它。如果将其转换为列表,您将继续访问其成员。
from itertools import permutations as p
combos = list(p(['/','*','-','+'], 3))
numbers = list(p(['9','7','7','6']))
for y in numbers:
print(y)
for x in combos:
print(x)
关于python - for 循环不正确循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41271318/