繁体   English   中英

检查列表python中的字符串

[英]Check for strings inside list python

可以说我有

a = "FIFA 13"

然后我写

"bla" and "13" in a

结果是正确的...为什么? bla不在

您的布尔表达式被评估为("bla") and ("13" in a) ,非空字符串的评估结果为true,因此,如果a中的"13" in a为true,则整个表达式的评估结果为true。

相反,使用all()

all(x in a for x in ("bla", "13"))

或者只是分别检查两者:

"bla" in a and "13" in a

你应该用

In [1]: a = "FIFA 13"

In [2]: "bla" in a and "13" in a
Out[2]: False

"bla"真的

"13" in a

因此,a中的"bla" and "13" in a

您想要写的可能是: ("bla" in a) and ("13" in a)

您的代码不会像读取时那样被解释:

("bla") and ("13" in a)

"bla"是真实的,因此它将自动评估为True "13" in a可能为True False and True计算结果为True ,因此未真正考虑"bla"

您必须更加明确:

'bla' in a and '13' in a

或者,您可以使用不可读的单线:

all(map(a.__contains__, ('bla', '13')))

对于单线短路,我认为您必须使用itertools.imap而不是map ..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM