2015-07-13 24 views
0

我已經編寫了一個程序,它可以消除列表中的項目並輸出另一個列表。Python如果語句:如何等於一個列表

計劃:

r = [5,7,2] 
for i in range(10): 
    if i != r: 
     print i 

它輸出

0 
1 
2 
3 
4 
5 
6 
7 
8 
9 

但我想所需的輸出爲

0 
1 
3 
4 
6 
8 
9 

什麼是這樣做的方法是什麼?

+0

可能重複://計算器。 com/questions/14608015/how-to-check-if-a-specific-integer-is-in-a-list) –

+1

因爲** i **是一個整數而** r **是一個列表。所以,你將int與一個列表進行比較。這就是爲什麼它每次都是**不等於**並根據您的邏輯打印每個整數。所以,使用**,如果我不在r ** –

+0

如果任何人的答案回答你的問題接受它或評論說它沒有工作 – The6thSense

回答

3

當你這樣做 - i !=r它總是如此,因爲intlist永遠不會是平等的。你想使用not in運營商 -

r = [5,7,2] 
for i in range(10): 
    if i not in r: 
     print i 

從蟒蛇documentation -

運營商innot in測試集合成員。如果x是集合s的成員,則返回x in s,否則返回false。 x not in s返回x in s的否定。

2

要檢查if a integer is not equal to to list。其中是正確的,因此打印所有的價值

你真正想要做的是檢查。所以你需要使用not in操作

值不出現在列表中
r = [5,7,2] 
for i in range(10): 
    if i not in r: 
     print i 
0

你可以嘗試這樣的,

>>> r = [5, 7, 2] 
>>> for ix in [item for item in range(10) if item not in r]: 
...  print ix 
... 
0 
1 
3 
4 
6 
8 
9 
0

使用[如何檢查是否爲特定的整型是在列表(HTTP的set

>>> r = [5,7,2] 
>>> for i in set(range(10))-set(r): 
...  print(i) 
... 
0 
1 
3 
4 
6 
8 
9 
>>>