gpt4 book ai didi

python - 删除列表单词组合python 3

转载 作者:太空狗 更新时间:2023-10-30 00:29:00 24 4
gpt4 key购买 nike

我有一个字符串列表,我想用它来搜索单词组合。如果组合不存在,则删除列表。有没有python列表理解会起作用吗?

word_list = ["Dogs love ice cream", "Cats love balls", "Ice cream", "ice cream is good with pizza", "cats hate ice cream"]

keep_words = ["Dogs", "Cats"]

Delete_word = ["ice cream"]

删除里面有冰淇淋的单词,但如果句子中有狗或猫,则保留它。

Desired_output = ["Dogs love ice cream", "Cats love balls", "cats hate ice cream"] 

正在尝试此代码也尝试了 AND 和 OR 但无法正确组合。

output_list = [x for x in  word_list if "ice cream" not in x]

最佳答案

这是一个列表理解解决方案:

[x for x in word_list if any(kw.lower() in x.lower() for kw in keep_words) 
or all(dw.lower() not in x.lower() for dw in Delete_word)]
# ['Dogs love ice cream', 'Cats love balls', 'cats hate ice cream']

这也增加了删除单词列表中多个单词的灵 active 。

解释

如果以下任一条件为 True,则遍历列表并保留单词:

  • 任何保留词都在x中
  • 删除的单词都不在x中

我从你的例子中推测你希望它不区分大小写,所以对单词的小写版本进行所有比较。

两个有用的函数是 any()all()

关于python - 删除列表单词组合python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48651345/

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