[英]How to recode line so an exact sentence must be in the list for it to match
x = ["Cookie flavored water is yummy 6", "Coding complicated 16", "Help 7"]
for i in x:
if "flavored" in x:
print ("Yes")
else:
print ("No")
我希望確切的字符串“ Cookie味的水很好吃”在列表中,這樣它可以被接受,但是我不希望包含6部分。 我完全迷住了如何做到這一點。 同樣,目標可能會從第一個元素變為另一個元素。
好吧,如果字符串始終是您指定的字符串,則可以執行以下操作:
yourString = "Cookie flavored water is yummy"
for item in x:
if yourString in item:
print 'Yes'
else:
print 'No'
這會檢查每個列表項是否包含指定的字符串。 在您的示例中,“ Cookie調味的水很好吃”包含子字符串“ Cookie調味的水很好吃”。 因此腳本將顯示“是”
您正在使用i
在x
進行迭代,但是您檢查string是否屬於列表,而不是屬於列表,該列表始終為false。
檢查x的元素是否包含"Cookie flavored water is yummy"
x = ["Cookie flavored water is yummy 6", "Coding complicated 16", "Help 7"]
for i in x:
print ("Yes" if "Cookie flavored water is yummy" in i else "No")
另一方面,對於精確的字符串匹配,只需in
不帶循環的情況下使用in
,該循環由in
運算符在x
進行:
print ("Yes" if "Cookie flavored water is yummy" in x else "No")
如果您需要對大量元素進行精確的字符串匹配,請考慮將元素放在set
因為查找時間要短得多(涉及散列)。 除此之外,代碼保持不變。
“可接受”是什么意思? 此外,當您說不想包含列表中項目末尾的數字時,是要進行比較嗎? 我同意其他答案,如果您碰巧想從列表中刪除數字,請執行以下操作:
x = [' '.join(i.split(' ')[:-1]) for i in x]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.