簡體   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