今天爱分享给大家带来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]