Python中两个列表中字符串中的公共字符

2024-05-08 14:51:27 发布

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

我有两个清单如下:

a = ["Ron is great", "Mark is good", "Sheela is bad", "Amy is horrible"]
b = ["Ron", "Mark"]
c = [item for item in a if item in b]

我通常使用上面的列表来找到2之间的共同元素列表。但是在上面的场景中它失败了,因为in函数确实匹配,因此c是空的列表。怎么做我是否要绕开这一点,尝试得到一个如下所示的列表c:

c=["Ron is great", "Mark is good"]

Tags: in元素列表forifisitembad
3条回答

你可以这样试试

>>> a = ["Ron is great", "Mark is good", "Sheela is bad", "Amy is horrible"]
>>> b = ["Ron", "Mark"]
>>> [ item for item in a for word in b if word in item]
['Ron is great', 'Mark is good']
>>> 

例如,需要两个循环

c = [item for item in a
     if any(name in item for name in b)]

应该足够了。你知道吗

用列表表达式解决了您的问题

>>> a = ["Ron is great", "Mark is good", "Sheela is bad", "Amy is horrible"]
>>> b = ["Ron", "Mark"]
>>> c= [
...     sentence
...     for word in b
...     for sentence in a
...     if word in sentence
... ]                

['Ron is great', 'Mark is good']

相关问题 更多 >

    热门问题