Python If语句:如何等同于列表

时间:2015-07-13 06:45:05

标签: python python-2.7 loops python-3.x if-statement

我编写了一个程序来消除列表中的项目并输出另一个列表。

计划:

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

这样做的方法是什么?

4 个答案:

答案 0 :(得分:3)

当你这样做时,i !=r总是如此,因为intlist永远不会相等。您想使用not in运算符 -

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

来自python documentation -

  

运算符innot in测试集合成员资格。如果x in s是集合x的成员,则s计算结果为true,否则为false。 x not in s返回x in s的否定。

答案 1 :(得分: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

答案 2 :(得分: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

答案 3 :(得分:0)

使用set

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