簡體   English   中英

如何對行進行重新編碼,以便准確的句子必須在列表中才能匹配

[英]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調味的水很好吃”。 因此腳本將顯示“是”

您正在使用ix進行迭代,但是您檢查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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM