python - 比较 Python 中的两个列表

标签 python string list variables comparison

所以举一个粗略的例子,但还没有为它编写任何代码,我很好奇我如何能够找出两个列表的共同点。

例子:

listA = ['a', 'b', 'c']
listB = ['a', 'h', 'c']

我希望能够返回:

['a', 'c']

怎么会这样?

可能带有可变字符串,例如:

john = 'I love yellow and green'
mary = 'I love yellow and red'

并返回:

'I love yellow and'

最佳答案

为此使用集合交集:

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

关于python - 比较 Python 中的两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11697709/

相关文章:

c - %*[^\n] (scanf) 在 c 中如何工作?

C# - 如何在同一行中初始化 List<string[]>

java - 使用 Java 8 lambdas 按不同元素对数组列表进行排序

java - 如何在java中拆分字符串中的目录路径组件

java - 输出等于空

android - 我想将 List<> 从 Activity A 传递到 B

python - 协作 mask 的实现?

python - NameError 使用 "finally: f.close()"和 "with open(..) as f"

Python - 如何识别 FASTA 文件中的 EOL

python - Matplotlib autodatelocator 自定义日期格式?