2012-05-02 93 views
174

我有一個Python中的元組列表,並且我有一個條件,如果元組不在列表中(如果它在列表中) ,那麼我不想採取如果分支)檢查是否有東西不在Python中的列表中

if curr_x -1 > 0 and (curr_x-1 , curr_y) not in myList: 

    # Do Something 

雖然這不是真的爲我工作。我做錯了什麼?

+9

不要使用'list'作爲變量名稱。這裏的錯誤輸出是什麼? – bossylobster

+1

請注意'3 -1> 0和(4-1,5)不在[]'True'True'中,因此錯誤不是運算符優先級之一。 –

+2

你是什麼意思「不真正爲我工作」?你期望發生什麼?究竟發生了什麼?什麼確切的列表內容觸發問題? –

回答

269

的錯誤可能是別的地方在你的代碼,因爲它應該很好地工作:

>>> 3 not in [2, 3, 4] 
False 
>>> 3 not in [4, 5, 6] 
True 

或者與元組:

>>> (2, 3) not in [(2, 3), (5, 6), (9, 1)] 
False 
>>> (2, 3) not in [(2, 7), (7, 3), "hi"] 
True 
+8

@Zack:如果你不知道這個,你可以做'如果沒有ELEMENT在COLLECTION:' – ninjagecko

+0

@ninjagecko:取決於可能效率較低甚至不正確的容器類型。例如參見[bloom filters](http://en.wikipedia.org/wiki/Bloom_filter)。 – orlp

+0

這是我在列表中定義我的元組的方式,謝謝你們 – Zack

-1
a = [23, 11, 21, 34, 53, 89, 133, 211, 345, 535, 895] 

b = [11, 32, 33, 45, 25, 66, 87, 863, 97, 130, 141, 126, 13] 

x=[] 
for i in a: 
    for j in b: 
     if i==j and j not in x: 
      x.append(j) 

print(x) 
相關問題