簡體   English   中英

Python 2個列表中的字符串中的常用字符

[英]Common characters within strings in 2 lists in Python

我有2個列表,如下所示:

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"]

例如,您將需要兩個循環

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']

你可以這樣嘗試

>>> 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']
>>> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM