gpt4 book ai didi

python - 将特定单词与列表中的字符串进行匹配。完全匹配而不是部分匹配

转载 作者:行者123 更新时间:2023-12-01 01:31:12 25 4
gpt4 key购买 nike

delete = ["man", "eat"]

item_list = ['sharper_task|$none_venue|man', 'sharper_task|man_venue|king', 'sharper_task|king_venue|world', 'sharper_task|world_venue|dont', 'sharper_task|を_venue|eater', 'sharper_task|eater_venue|todo', 'sharper_task|todo_venue|,']

我的代码:

lst = []
for x in item_list:
if not any(y in x for y in delete):
lst.append([x, x])

print(lst)

但是,这种方法会让我的输出变得很麻烦。例如,如果我的删除包含delete = [“man”,“eat”],这与item_list中的“eater”一词不相似,但程序仍然会接受它,因为我使用了if not any(y IN x)这个“in”将返回 true,因为 eat 包含在 eater 中,但我想要的不是包含在单词中,而是包含在匹配中。我想将“eater”与“eater”、“man to man”这两个词相匹配,而不是“eat to eater”和“ma to man”。

有没有办法进行完全匹配而不是部分匹配?我当前的代码采用部分匹配,当我在删除中有许多部分单词时,这是错误的。

最佳答案

然后您可以检查字符串是否完全匹配:

    delete = ["man", "eat"]

item_list = ['sharper_task|$none_venue|man', 'sharper_task|man_venue|king', 'sharper_task|king_venue|world', 'sharper_task|world_venue|dont', 'sharper_task|を_venue|eater', 'sharper_task|eater_venue|todo', 'sharper_task|todo_venue|,']


lst = []
for x in item_list:
if not any(y == x for y in delete):
lst.append([x, x])

print(lst)


# [['sharper_task|$none_venue|man', 'sharper_task|$none_venue|man'], ['sharper_task|man_venue|king', 'sharper_task|man_venue|king'], ['sharper_task|king_venue|world', 'sharper_task|king_venue|world'], ['sharper_task|world_venue|dont', 'sharper_task|world_venue|dont'], ['sharper_task|を_venue|eater', 'sharper_task|を_venue|eater'], ['sharper_task|eater_venue|todo', 'sharper_task|eater_venue|todo'], ['sharper_task|todo_venue|,', 'sharper_task|todo_venue|,']]

注意:或 | 运算符在字符串中没有任何用处,如 'sharper_task|eater_venue|todo'

关于python - 将特定单词与列表中的字符串进行匹配。完全匹配而不是部分匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52847032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com