gpt4 book ai didi

python - 如何从不同列表中挑选出包含两个关键字的字符串?

转载 作者:行者123 更新时间:2023-11-28 22:43:44 24 4
gpt4 key购买 nike

假设我有一个字符串列表

"Measles outbreak in the U.S worse than ever"
"MMR vaccination rates in California at all time low"
"I don't live in California"

和两个关键字列表

location = ['California', 'West Coast', 'Los Angeles']
disease = ['Measles', 'MMR', 'Pertussis']

如何从 diseaselocation 中找出至少包含一个关键字的字符串。

例如,应该挑选出第二个字符串,而不是第一个或最后一个。

最佳答案

制作位置和疾病集,将子字符串拆分为单词,并查看拆分字符串中的单词是否同时出现在两组中

location = {'California', 'West Coast', 'Los Angeles'}
disease = {'Measles', 'MMR', 'Pertussis'}

l = ['West Coast MMR',"Measles outbreak in the U.S worse than ever","MMR vaccination rates in California at all time low","I don't live in California"]

import re

r = re.compile("West Coast|Los Angeles|California")

for s in l:
if r.search(s) and any(word in disease for word in s.split()):
print(s)

for s in l:
if r.search(s) and disease.intersection(s.split()):
print(s)

if location.intersection(spl) and disease.intersection(spl): 仅当字符串中的至少一个出现在两个集合中时才会为真。 r.search(s) 从位置捕获两个单词子串。

根据您的实际 location 列表看起来如何混合,set 和 re 方法可能是最快的,首先检查 set 然后使用或 r.search(s)编译正则表达式以匹配多词子字符串。

您可能还想使用单词边界,这样您就不会匹配 Californian 等......:

 r = re.compile("West Coast|Los Angeles|\bCalifornia\b")

根据可能出现的其他字词,您可能需要进行其他调整。如果不知道您的实际数据集,就不可能给出明确或最佳的答案。

关于python - 如何从不同列表中挑选出包含两个关键字的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30291625/

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