這可能很簡單,但我對這種編程方法很陌生,並且很難將我的頭圍繞在我需要做的事情上。從一個數組中生成一個排列列表
我試圖建立一個應用於圖像的過濾器列表。我可以應用七個過濾器,每個過濾器可以是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
似乎沿着正確的路線,但我仍然不能包裹我的頭。幫助讚賞。
注意:您可以使用'len(list(...))'。哦,並明確指出'itertools' plz。 –
@KarolyHorvath我最初嘗試使用'len(list(...))'(並且現在再次檢查),它返回0 - 這就是我添加計數器的原因。 –
那就是......我應該怎麼說...... *有趣* ......在這裏工作。 –