获取所有可能的值组合
Getting all the possible combinations of values
我想写一个代码来显示输出的所有可能性。下面的代码显示了没有重复的变量组合,因此对于 2 的迭代,它不包括 ('yes', 'yes') or ('no', 'no')
。我想在预期输出中添加可重复的值。 iterator
值指定有多少种组合,它们的长度必须相同,都是 2 或 3。我将如何做到这一点并获得 2 和 3 迭代的预期输出?
# the possible combinations
from itertools import permutations
def vals(iterator):
# of length 2
comb = permutations(['yes','no'], iterator)
print(f"iter amount :{iterator}")
for i in comb:
print(i)
vals(2)
vals(3)
输出:
iter amount :2
('yes', 'no')
('no', 'yes')
iter amount :3
预期产出:
iter amount :2
('yes', 'yes')
('yes', 'no')
('no', 'yes')
('no', 'no')
iter amount :3
('yes', 'yes', 'yes')
('yes', 'yes', 'no')
('yes', 'no', 'no')
('no', 'no', 'no')
('no', 'no', 'yes')
('no', 'yes', 'yes')
您可能正在寻找 itertools.product
。
>>> import itertools
>>> for x in itertools.product(('yes', 'no'), repeat=3):
... print(x)
...
('yes', 'yes', 'yes')
('yes', 'yes', 'no')
('yes', 'no', 'yes')
('yes', 'no', 'no')
('no', 'yes', 'yes')
('no', 'yes', 'no')
('no', 'no', 'yes')
('no', 'no', 'no')
我想写一个代码来显示输出的所有可能性。下面的代码显示了没有重复的变量组合,因此对于 2 的迭代,它不包括 ('yes', 'yes') or ('no', 'no')
。我想在预期输出中添加可重复的值。 iterator
值指定有多少种组合,它们的长度必须相同,都是 2 或 3。我将如何做到这一点并获得 2 和 3 迭代的预期输出?
# the possible combinations
from itertools import permutations
def vals(iterator):
# of length 2
comb = permutations(['yes','no'], iterator)
print(f"iter amount :{iterator}")
for i in comb:
print(i)
vals(2)
vals(3)
输出:
iter amount :2
('yes', 'no')
('no', 'yes')
iter amount :3
预期产出:
iter amount :2
('yes', 'yes')
('yes', 'no')
('no', 'yes')
('no', 'no')
iter amount :3
('yes', 'yes', 'yes')
('yes', 'yes', 'no')
('yes', 'no', 'no')
('no', 'no', 'no')
('no', 'no', 'yes')
('no', 'yes', 'yes')
您可能正在寻找 itertools.product
。
>>> import itertools
>>> for x in itertools.product(('yes', 'no'), repeat=3):
... print(x)
...
('yes', 'yes', 'yes')
('yes', 'yes', 'no')
('yes', 'no', 'yes')
('yes', 'no', 'no')
('no', 'yes', 'yes')
('no', 'yes', 'no')
('no', 'no', 'yes')
('no', 'no', 'no')