for循环(条件)和python中的逻辑s操作

时间:2013-04-29 06:02:39

标签: python

我正在尝试将循环和逻辑操作组合在一起,如下所示并遇到编译错误。

有关如何解决这个问题的任何意见?

File "test.py", line 36
    for ((num in list) and (num not in handled_list)):
                                                        ^
SyntaxError: invalid syntax

5 个答案:

答案 0 :(得分:3)

您也可以使用套装执行此操作:

>>> a = [1, 2, 3, 4, 5]
>>> b = [3, 5]
>>> for num in set(a) ^ set(b):
...     print num
...
1
2
4

答案 1 :(得分:2)

for语句不支持这种语法。语法只是for item in iterable ---您无法指定条件。在循环中指定条件:

for num in list:
    if num in handled_list:
        continue
    # Do what you want with the elements in list but not in handled_list

或者预先创建一个列表(或其他可迭代的),它只是你想要迭代的内容。

答案 2 :(得分:1)

for语句不允许您尝试执行的条件。

但您可以检查在场状态:

假设如下:

nums = [1,2,3,5,4]
handled_list  = [12,3,5,23,4]
num = 2

if ((num in nums) and (num not in handled_list)):
    print "hello, i did find the number in nums but not in handled list"

迭代仍然在if语句中进行,但不允许访问每个迭代元素。

答案 3 :(得分:0)

for语句不能以这种方式使用。完成您想要做的事情的简单方法可能如下:

>>> for num in listOne:
        if num not in listTwo:
           # Do Something

此外,list是一个内置对象,如果你不将它用作变量名,那就更好了。

答案 4 :(得分:0)

尽量做到尽可能紧密,这是一个解决方案:

my_list = [1, 3, 5]
handled_list = [3]

for n in [num for num in my_list if num not in handled_list]:
    print n

强烈建议避免重新定义内置插件,就像您似乎使用“list”一样。