[英]Producing a list of permutations from an array
这可能很简单,但是对于这种编程我还是陌生的,我一直在努力把自己的头围在我需要做的事情上。
我正在尝试建立要应用于图像的过滤器列表。 我有七个可以应用的过滤器,每个过滤器可以为0
或1
(打开或关闭)。 过滤器为:
filters = [
'Exposure',
'Noise',
'Pressure',
'XQ Mix',
'Invert',
'Desaturate',
'Equalise'
]
我想要产生的是这些过滤器在其状态下的所有可能排列。 应该有128个可能的排列(2 ^ 7),但是当我运行以下代码时,我得到5080个排列:
perms = permutations(filters)
perm_count = 0
for p in perms:
print(p)
perm_count = perm_count + 1
print str(perm_count) + ' total permutations'
我可能使用了错误的方法-所有要做的就是改组过滤器的序列,我不在乎。
我尝试将过滤器列表更新为每个过滤器都有两个项目,例如。 ['Exposure0', 'Exposure1']
等,但是对此运行combinations(filters, 7)
会给我重复的值(例如,同一列表中的开和关状态)。
我在这里苦苦挣扎–有人可以朝着正确的方向推动我迈向这种事情吗? 在文档中查看,类似product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy
看起来很正确,但我仍然无法解决。 帮助表示赞赏。
据我了解,您正在寻找的东西称为电源集。 这是此方法的一些实现: 在Python中获取集合的子集
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.