我编写了一个程序来消除列表中的项目并输出另一个列表。
计划:
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 :(得分:3)
当你这样做时,i !=r
总是如此,因为int
和list
永远不会相等。您想使用not in
运算符 -
r = [5,7,2]
for i in range(10):
if i not in r:
print i
来自python documentation -
运算符
in
和not 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
>>>