为此使用集合交集:
list(set(listA) & set(listB))
给出:
['a', 'c']
请注意,由于我们正在处理 集合, 因此可能 无法 保留顺序:
' '.join(list(set(john.split()) & set(mary.split())))
'I and love yellow'
使用join()
所得到的列表转换成一个字符串。
-
对于下面的示例/评论,这 将保留顺序 (受@DSM的评论启发)
' '.join([j for j, m in zip(john.split(), mary.split()) if j==m])
'I love yellow and'
对于列表长度不同的情况,结果如以下注释中所示:
aa = ['a', 'b', 'c']
bb = ['c', 'b', 'd', 'a']
[a for a, b in zip(aa, bb) if a==b]
['b']