我正在尝试解析一些文本并寻找某些模式。我正在寻找的一种模式是包含“AS”和“.”的字符串。
假设我有一个字符串列表,我使用它来查找所选字符串并将其附加到新列表中。
list1 = []
for ngram in bigrams:
if ' AS ' and '.' in ngram:
list1.append(ngram)
这不起作用,它的功能似乎更像是:
if ' AS ' or '.' in ngram:
有什么建议吗?
最佳答案
if ' AS ' and '.' in ngram:
被解析为
if (' AS ') and ('.' in ngram):
也就是说,
if (True) and ('.' in ngram):
相当于 if '.'在 ngram
中。
事实上,您不能使用“foo 和 bar in baz”。尝试一下:
if ' AS ' in ngram and '.' in ngram:
或者更好的是,在列表理解中使用它并将这 5 行代码更改为一行:
list1 = [ngram for ngram in bigrams if ' AS ' in ngram and '.' in ngram]
关于Python If 语句使用 'and' 和 'in',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31211547/