合并列表的内部元素

merging the inside elements of a list

我有两个列表:

a=[ 'ness' , 'ul' , 'ind' , 'be' ]

b=[ 'kind ness' , 'ameri can' , 'ind ian' , 'be cause' , 'be lieve' , 'bo ring' ]

我想编写一个程序来比较这些列表,如果列表 'b' 的元素包含列表 'a' 的元素,那么程序会合并它。对于这个例子,输出应该是:

output=[ 'kindness' , 'ameri can' , 'indian' , 'because' , 'believe' , 'bo ring' ]

我试图找到两个列表的交集,然后开始合并,但没有成功。你能帮帮我吗?

您可以将 set 与列表理解一起使用

a=['ness','ul','ind','be']
b=['kind ness','ameri can','ind ian','be cause','be lieve','bo ring']

[i.replace(' ', '') if set(i.split(' ')).intersection(a) else i for i in b]
#['kindness', 'ameri can', 'indian', 'because', 'believe', 'bo ring']

这应该有效:

output = [(phrase.replace(' ', '') 
               if any(word in phrase for word in a) 
               else phrase
          ) for phrase in b]
# ['kindness', 'ameri can', 'indian', 'because', 'believe', 'bo ring']