这可能很简单,但我对这种编程很陌生,并努力围绕我需要做的事情。
我正在尝试构建要应用于图片的过滤器列表。我可以应用七个过滤器,每个过滤器可以是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
这样的东西似乎是正确的,但我仍然无法绕过它。帮助赞赏。
答案 0 :(得分:3)
据我所知,你所寻找的东西叫做powerset。 以下是此方法的一些实现: Getting the subsets of a set in Python
答案 1 :(得分:2)
您正在以错误的方式使用permutations
。看看the documentation:
>>> permutations('ABCD', 2)
AB AC AD BA BC BD CA CB CD DA DB DC
您只是混合了filters
值并创造了所有可能性,即7! = 5040。
你想要的是(0, 1)
>>> p = product((0, 1), repeat=7)
>>> print(len(p))
128
# [(0, 0, 0, 0, 0, 0, 0), (0, 0, 0, 0, 0, 0, 1), ...]
七次。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC]
RewriteRule ^ https://www.newdomain.org%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.newdomain.org%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]