集合 set
特点是去除重复 , 把一个列表变成集合 ,就自动去重了
关系测试, 测试两组数据之间的交集、差集、并集等关系
1. 列表变成集合
list_1 = [1,24,5,7,6,6,5,4]
list_1 = set (list_1)
print (list_1,type (list_1))
list_2 = set ([2,4,55,43,4])
print (list_2)
{1, 4, 5, 6, 7, 24} <class 'set'>
{2, 43, 4, 55}
2.取出两个列表的交集
print ("交集: ",list_1.intersection (list_2))
print ("交集: ",list_1 & list_2)
交集: {4}
交集: {4}
3.取并集
print ("并集: ",list_1.union(list_2))
print ("并集: ",list_1 | list_2)
并集: {1, 2, 4, 5, 6, 7, 43, 55, 24}
并集: {1, 2, 4, 5, 6, 7, 43, 55, 24}
4.差集
#差集,1 有 2 没有的
print ("1有2没有: ",list_1.difference (list_2))
print ("1有2没有: ",list_1 - list_2)
# 2有 1没有的
print ("2有1没有: ",list_2.difference (list_1))
print ("2有1没有: ",list_2 - list_1)
1有2没有: {1, 5, 6, 7, 24}
1有2没有: {1, 5, 6, 7, 24}
2有1没有: {2, 43, 55}
2有1没有: {2, 43, 55}
5.判断是不是子集、父集:注意看谁是谁的子集
# 判断1是不是2的子集
print (list_1.issubset (list_2))
# 判断是不父集
print (list_1.issuperset (list_2))
False
False
6. 对称差集,即并集减去交集
print (list_1.symmetric_difference (list_2))
print (list_1 ^ list_2)
{1, 2, 5, 6, 7, 43, 55, 24}
{1, 2, 5, 6, 7, 43, 55, 24}
7. 增加元素 add update
#增加一项
print (list_1)
list_1.add (999)
print (list_1)
#增加多项
list_1.update ([222,333,444])
print (list_1)
{1, 4, 5, 6, 7, 24}
{1, 4, 5, 6, 7, 999, 24}
{1, 4, 5, 6, 7, 999, 333, 24, 444, 222}
8. 删除一项
list_1.remove (222)
print (list_1)
{1, 4, 5, 6, 7, 999, 333, 24, 444}
9.判断222 是否在集合里
print (222 in list_1)
print (444 in list_1)
False
True