如何重新编码一行这样一个确切的句子必须在列表中,它匹配

2024-05-13 18:48:32 发布

您现在位置:Python中文网/ 问答频道 /正文

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")

我想确切的字符串“饼干味的水是美味的”是在名单上,它是可以接受的,但我不想包括6部分。我完全不知道如何做到这一点。目标也可能从第一个元素变为另一个元素。你知道吗


Tags: in元素forifiscookiehelpelse
3条回答

您正在用ix上迭代,但是您检查字符串是否属于列表,而不是元素,这总是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运算符在x上生成:

print ("Yes" if "Cookie flavored water is yummy" in x else "No")

如果需要对大量元素进行精确的字符串匹配,请考虑将元素放在set中,因为查找时间要小得多(涉及哈希)。除此之外,代码保持不变。你知道吗

如果字符串始终是您指定的字符串,则可以执行以下操作:

yourString = "Cookie flavored water is yummy"
for item in x:
    if yourString in item:
        print 'Yes'
    else:
        print 'No'

这将检查指定字符串的每个列表项。在您的示例中,“Cookie-flavored water is yummy 6”包含子字符串“Cookie-flavored water is yummy”。所以脚本会打印“是”

你说的“可接受”是什么意思另外,当你说你不想把列表中项目末尾的数字包括在内时,你的意思是为了进行比较吗?我同意其他答案,如果你碰巧想从列表中删除这些数字:

x = [' '.join(i.split(' ')[:-1]) for i in x]

相关问题 更多 >