Python 如何求两个列表(list)的交集、差集或并集?【面试题详解】

今天爱分享给大家带来Python 如何求两个列表(list)的交集、差集或并集?【面试题详解】,希望能够帮助大大家。

求两个列表(list)的交集、差集或并集,最容易想到的方法就是用 for 循环来实现,如下所示:

a = [1, 2, 3, 4, 5]
b = [2, 4, 5, 6, 7]
# 交集
result = [r for r in a if r in b]
print(f"a与b的交集: {result}")  # a与b的交集: [2, 4, 5]
# 差集 在a中但不在b中
result = [r for r in a if r not in b]
print(f"a与b的差集: {result}")  # a与b的差集: [1, 3]
# 并集
result = a
for r in b:
    if r not in result:
        result.append(r)
print(f"a与b的并集: {result}")  # a与b的并集: [1, 2, 3, 4, 5, 6, 7]

方法二:用 set 操作

a = [1, 2, 3, 4, 5]
b = [2, 4, 5, 6, 7]

# 交集
result = list(set(a).intersection(set(b)))
print(f"a与b的交集: ", result)  # a与b的交集:  [2, 4, 5]
# 差集 在a中但不在b中
result = list(set(a).difference(set(b)))
print(f"a与b的差集: ", result)  # a与b的差集:  [1, 3]
# 并集
result = list(set(a).union(set(b)))
print(f"a与b的并集: ", result)  # a与b的并集:  [1, 2, 3, 4, 5, 6, 7]

人已赞赏
Python

Python 如何删除一个列表(list)中的重复元素【面试题详解】

2020-11-13 11:18:20

Python

Python 如何反序的迭代一个序列?【面试题详解】

2020-11-13 13:39:46

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧