python学习笔记之集合

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

常用操作

list_1 = [1,4,5,7,8,7,9]
list_1 = set(list_1)
list_2 = set([2,5,8,10])
print(list_1)#{1, 4, 5, 7, 8, 9}
print(list_2)#{8, 2, 10, 5}
#交集
print(list_1.intersection(list_2))#{8, 5}返回一个新的 set 包含 list_2list_1 中的公共元素
print(list_1&list_2)
#并集
print(list_1.union(list_2))#{1, 2, 4, 5, 7, 8, 9, 10}返回一个新的 set 包含 list_2 和 list_1 中
的每一个元素
print(list_1|list_2)
#差集 in list_1 but not in list_2
print(list_1.difference(list_2))#{1, 4, 9, 7}
print(list_2.difference(list_1))#{2, 10}返回一个新的 set 包含 list_2 中有但是list_1中没有的元素
print(list_1-list_2)#{1, 4, 9, 7}

#子集
list_3 = set([5,8])
print(list_3.issubset(list_2))#True list_3是否为list_2的子集
print(list_2.issuperset(list_3))#True
#对称差集
print(list_3.symmetric_difference(list_2))#{2, 10}返回一个新的 set 包含 list_2list_3 中不重复的元素
print(list_3 ^ list_2)
#添加
list_2.add(9)
print(list_2)#{2, 5, 8, 9, 10}
list_2.update([999,33,11])#{33, 2, 5, 999, 8, 9, 10, 11},在list_2中新增多项
print(len(list_2))#8 长度
print(list_2)#{33, 2, 5, 999, 8, 9, 10, 11}
print(list_2.pop())#33
#remove 如果集合里面没有元素,remove会报错KeyError: 'ddd'
print(list_2.remove("ddd"))
#discard 如果集合里面没有元素,不会报错,会返回None
print(list_2.discard(33))
print('ddd' in list_2)#ddd是否在集合list_2中
 
原文地址:https://www.cnblogs.com/fenny0907/p/7405321.html