集合 set
- 集合是无序的
- 集合的值是唯一的
求两个集合的关系:
list1 = [1,4,5,7,3,6,7,9]
list2 = set([2,6,0,66,22,8,4])
list3 = set([1,3,7])
list4 = set([5,6,8]) # 给列表去重: 把列表变成集合, 重复的值也自然就被去掉了
list1 = set(list1)
print(list1,type(list1)) # 取两个列表的交集
list2 = set([2,6,0,66,22,8,4])
print(list1.intersection(list2)) # 取两个列表的并集
print(list1.union(list2)) # 两个列表中重复的元素只显示一次 # 取两个列表的差集(把两个列表的并集去掉交集部分)
print(list1.symmetric_difference(list2)) # 取存在于列表1但不存在列表2的数据
print(list1.difference(list2)) # 判断一个列表是不是另一个列表的子集
print(list1.issubset(list2)) # 判断一个列表是不是另一个列表的父集
print(list1.issuperset(list2)) # 判断两个集合是否有交集
print(list3.isdisjoint(list4))
# 交集 &
print(list1&list2) # 并集 |
print(list2 | list1) # difference
print(list1-list2) # in list1 but not in list2 # 对称差集 symmetric_difference ^
print(list1 ^ list2)
集合的增删改查
# 增 (添加一个)
list1.add(999) # 改 (添加多个)
list1.update([10,37,42])
print(list1) # 删 (一次只能删掉一个), 若指定元素不存在,会报错
list1.remove(10) # 集体的长度
len(list1) # 测试x是否是a的成员
x in a # 测试x是否不是a的成员
x not in a # 任意删除一个元素并返回被删除的元素
list.pop() # 删除指定的元素,若指定的元素不存在不会报错
list1.discard(10)