检查列表与列表理解重叠

我在 python 中有一个脚本,它生成 2 个不同大小的随机列表,并返回第三个列表,该列表仅包含使用列表推导式的 2 个列表(没有重复)之间共有的元素

例子:

a = [3, 8, 9, 6, 5, 3, 7, 8, 2, 10]
b = [7, 13, 20, 12, 12, 2, 6, 1, 2, 8, 19, 3, 15, 16, 14, 22, 22, 4, 9, 15, 8, 13]

我的结果列表是

c = [7, 2, 6, 2, 8, 3, 9, 8]

但应该是

c = [7, 6, 2, 8, 3, 9]

这是我所做的:

c = [i for i in max(a, b) if i in min(a, b) and i not in c]

提前致谢!

回答

您可以通过以下方式使用集合:

c = list(set(a).intersection(set(b)))

这会给你:

[2, 3, 6, 7, 8, 9]

这是有效的,因为set项目是无序的、不可更改的,并且不允许重复值。将其与intersection方法相结合,您将得到结果。


以上是检查列表与列表理解重叠的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>