【发布时间】:2019-07-15 09:10:42
【问题描述】:
首先iam使用python3.5
我必须做一些比较文件并编写特定行的东西,但现在遇到了一个问题。
我有一个标记列表,指定文件的行,就这样吧
a = ["bla", "blub"]
对于第二个文件,一个标记和相应行的字典。
b = {"bla" : "1", "blub" : "2", "nope" : "3"}
如果我现在这样做
for b[0] in a:
print(b[b[0]])
我明白了
1
2
我想要它,但在另一种情况下我不想这样做
for b[0] not in a:
print(b[b[0]])
我得到了 SyntaxError 不是的。 有人可以解释一下为什么这不起作用,也许可以找到一种方法来打印不在 a 中出现的键的所有值吗?
提前致谢!
【问题讨论】:
-
在
for循环中,in是关键字,而不是运算符。您不能使用not in进行迭代。 -
b[0]不能工作,因为b没有密钥0。 -
此外,
a中有无限个不是的值;b[0]将设置为哪些,以什么顺序设置? -
for b[0] not in a:行在这里只是一个错字。你想使用if,而不是for。 -
您也极不可能在每次迭代时更改
b[0]的值,如果b[0]有效,就会发生这种情况。for循环是一种赋值语句。
标签: python python-3.x python-3.5