合并列表的内部元素
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']
我有两个列表:
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']