我正在尝试将循环和逻辑操作组合在一起,如下所示并遇到编译错误。
有关如何解决这个问题的任何意见?
File "test.py", line 36
for ((num in list) and (num not in handled_list)):
^
SyntaxError: invalid syntax
答案 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”一样。