如何检查一个列表中的字符串是否在另一个列表中?

2024-05-16 11:44:52 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有两个列表:

a=['LOL','GG','rofl']
b=['5 KEK muh bobo LOL', 'LOL KEK bobo bobo GG']

如何检查a中的第一个元素是否可以在b的第一个元素中找到?你知道吗


Tags: 元素列表lolggbobokekmuhrofl
3条回答

Python实际上非常健壮。你可以这样做。你知道吗

a[0] in b[0]

如果您只需要知道它是否在字符串中:

if a[0] in b[0]: pass

但是,上面的问题是这两个都将返回true:

if "LOL" in "a b LOL c": pass
if "LOL" in "a b xxLOLxx c": pass

所以,如果你关心单词和简单的存在,只要你的分隔符是一致的:

if a[0] in b[0].split(" "): pass

如果你需要知道哪个词的位置:

idx = b[0].split().index(a[0]) # note, throws a ValueError if not in the list

如果需要知道字符串中的位置:

idx = b[0].find(a[0]) # returns -1 if not found

如果您想知道a中的每个元素是否在b的相应元素中(忽略任一列表上的额外条目):

[(i[0] in i[1]) for i in zip(a, b)] # to check for simple membership
[(i[0] in i[1].split()) for i in zip(a, b)] # to check for whole words

只是:

a[0] in b[0] # will return True or False

也许你想检查所有这些:

set(i for i in a for j in b if i in j)

或者

{i for i in a for j in b if i in j} #Python 2.7+

相关问题 更多 >