如何使用 Python 在另一个字符串列表中有效地搜索字符串列表? [英] How to efficiently search for a list of strings in another list of strings using Python?

查看:54
本文介绍了如何使用 Python 在另一个字符串列表中有效地搜索字符串列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个名称(字符串)列表,如下所示:

I have two list of names (strings) that look like this:

executives = ['Brian Olsavsky', 'Some Guy', 'Some Lady']

analysts = ['Justin Post', 'Some Dude', 'Some Chick']

我需要找到这些名称在如下所示的字符串列表中出现的位置:

I need to find where those names occur in a list of strings that looks like this:

str = ['Justin Post - Bank of America',
 "Great. Thank you for taking my question. I guess the big one is the deceleration in unit growth or online stores.", 
"I know it's a tough 3Q comp, but could you comment a little bit about that?",
 'Brian Olsavsky - Amazon.com',
 "Thank you, Justin. Yeah, let me just remind you a couple of things from last year.", 
"We had two reactions on our Super Saver Shipping threshold in the first half." ,
 "I'll just remind you that the units  those do not count",
 "In-stock is very strong, especially as we head into the holiday period.",
 'Dave Fildes - Amazon.com',
"And, Justin, this is Dave. Just to add on to that. You mentioned the online stores.

我需要这样做的原因是我可以将对话字符串连接在一起(由名称分隔).我将如何有效地做到这一点?

The reason I need to do this is so that I can concatenate the conversation strings together (which are separated by the names). How would I go about doing this efficiently?

我看了一些类似的问题,尝试了一些解决方案都无济于事,例如:

I looked at some similar questions and tried the solutions to no avail, such as this:

if any(x in str for x in executives):
    print('yes')

还有这个……

match = next((x for x in executives if x in str), False)
match

推荐答案

我不确定这是否是您要找的:

I'm not sure if that is what you are looking for:

executives = ['Brian Olsavsky', 'Some Guy', 'Some Lady']
text = ['Justin Post - Bank of America',
 "Great. Thank you for taking my question. I guess the big one is the deceleration in unit growth or online stores.", 
"I know it's a tough 3Q comp, but could you comment a little bit about that?",
 'Brian Olsavsky - Amazon.com',
 "Thank you, Justin. Yeah, let me just remind you a couple of things from last year.", 
"We had two reactions on our Super Saver Shipping threshold in the first half." ,
 "I'll just remind you that the units  those do not count",
 "In-stock is very strong, especially as we head into the holiday period.",
 'Dave Fildes - Amazon.com',
"And, Justin, this is Dave. Just to add on to that. You mentioned the online stores."]

result = [s for s in text if any(ex in s for ex in executives)]
print(result)

输出:['Brian Olsavsky - Amazon.com']

output: ['Brian Olsavsky - Amazon.com']

这篇关于如何使用 Python 在另一个字符串列表中有效地搜索字符串列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆