尝试创建一个在字符串中搜索单词的函数



这是我第一次发帖,但我有一个问题,关于尝试在python中创建一个函数,该函数将搜索字符串列表并返回我正在寻找的任何单词。以下是目前为止的内容:

def search_words(data, search_words):
keep = []
for data in data:
if data in search_words:
keep.append(data)
return keep

这是我正在搜索的数据和我想找到的单词:

data = ['SHOP earnings for Q1 are up 5%',
'Subscriptions at SHOP have risen to all-time highs, boosting sales',
"Got a new Mazda, VROOM VROOM Y'ALL",
'I hate getting up at 8am FOR A STUPID ZOOM MEETING',
'TSLA execs hint at a decline in earnings following a capital expansion program']
words = ['earnings', 'sales']

在做print(search_words(data=data, search_words=words))我的列表(keep)返回空括号[],我不确定如何解决这个问题。我知道在字符串中搜索一个单词与在列表中搜索一个数字是不同的,但我不知道如何修改我的代码来解释这一点。如有任何帮助,不胜感激。

您可以使用以下命令。这将保留data中包含至少一个words的所有句子:

keep = [s for s in data if any(w in s for w in words)]

因为它们都是字符串,所以不要遍历它们,而是将它们全部组合并搜索。也使wordsset:

[word for word in ' '.join(data).split() if word in words]

使用正则表达式:

re.findall('|'.join(words), ''.join(data))

['earnings', 'sales', 'earnings']

您可以使用以下命令。这将保留数据中包含至少一个或两个单词的所有句子:这是一种为初学者设计的程序。数据,search_words必须是一个列表。

def search_words(data, search_words):
keep = []
for dt in data:
for sw in search_words:
if sw in dt:
keep.append(dt)
return keep

最新更新