方法1:
列表推导式
lst1 = [1, 3, 7]lst2 = [3, 5, 4]a = [x for x in lst1 if x in lst2]b = [y for y in (lst1 + lst2) if y not in a]print(a)print(b)
方法2:
普通的for循环
lst1 = [1, 3, 7]lst2 = [3, 5, 4]a = []b = []for i in lst1: for j in lst2: if i == j: a.append(i)for k in (lst1 + lst2): if k not in a: b.append(k)print(a)print(b)
方法3:
利用集合(set)运算
lst1 = [1, 3, 7]lst2 = [3, 5, 4]a = set(lst1) # {1, 3, 7}b = set(lst2) # {3, 5, 4}# 交集 a & b 包含集合a和集合b中的公共元素# print(a & b) # {3}# 对称差集 a ^ b 包含集合a和集合b中不重复的所有元素# print(a ^ b) # {1, 4, 5, 7}print(list(a & b)) # [3]print(list(a ^ b)) # [1, 4, 5, 7]# 并集 a | b 包含集合a和集合b中所有的元素# 差集 a - b 包含集合a中有的集合b中没有的元素x = a.symmetric_difference(b)y = a.symmetric_difference_update(b) # 自我更新不返回对象,即a ^= bprint(x) # {1, 4, 5, 7}print(y) # Noneprint(a) # {1, 4, 5, 7}