2015-12-06 43 views
-1

我有變量的值的列表,像有沒有辦法在Python中檢查多個列表是否彼此不相等?

for a in range(0,2): 
    for b in range(0,2): 
     for c in range(0,2): 
      myList = [a, b, c, 1] 

然後我想生成的所有列表,使得所述有序對[A,B],[B,C]並[c,1]的所有不同。

  1. 我該怎麼做?
  2. 有沒有辦法一次檢查它們是否全部不相等,而不是每對「不平等」?

回答

0

我能想到的有效地完成多路唯一性檢查的唯一方法就是使用一個哈希的類型,並把值轉換爲set。如果集合的大小是一樣的,你添加到它的項目數,他們都是獨一無二的:

for a in range(0,2): 
    for b in range(0,2): 
     for c in range(0,2): 
      if len(set([(a,b), (b,c), (c,1)])) == 3: 
       myList = [a, b, c, 1] 
       # do stuff with myList here 

只有三個項目,雖然,它可能更快地只是做三個不等測試。或者,由於正好有4個有效的[a,b,c,1]列表,因此您可以對它們進行硬編碼:

for valid_list in [[0,0,1,1], [1,0,0,1], [1,0,1,1], [1,1,0,1]]: 
    # do stuff with valid_list 
+0

您能寫出我上面給出的示例代碼嗎? –

+0

對於'set'方法?完成! – Blckknght

相關問題