python - 获取所有可能的值组合
问题描述
我想编写一个代码来显示输出的所有可能性。下面的代码显示了与没有重复的变量的组合,因此对于 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')
推荐阅读
- arduino - 使用 make 命令编译引导加载程序 (ATMEGA2560) 时出现问题
- c# - 将列表字符串的子集复制到另一个列表
- javascript - vue.js 将输入数据传递到另一个页面并提交 vue 方法
- google-sheets - 在谷歌表格中使用公式“Vlookup”进行条件格式设置
- google-chrome - 为什么我不能用 chrome 调试 Service Worker?
- jsonschema - 如何创建强制一个子属性具有字段集的 json 模式
- qt - Qml 日历 - 选择开始日期和结束日期
- ios - 在移动设备上标准化亮度/对比度
- javascript - TypeORM - where 子句中的布尔值不能正常工作
- jmeter - Jmeter性能和负载测试