python数据类型之集合(set)和其常用方法

集合是一个无序的,不重复的数据组合

作用(集合的重点):
1.去重,把一个列表变成集合就自动去重了
2.关系测试,测试两组数据库之前的交集、差集、并集等关系

s = {1, 1, 2, 2, 3, 4, 'a', 'a', '!', '!'}
print(type(s))  # <class 'set'>
print(s)  # 自动去重 {1, 2, 3, 4, 'a', '!'}

# add 增加值,不能加一样的。只能加1个值,加多个值会报错
# pop 随机删除一个值,因为集合是无序的
# remove 写谁删谁
# discard  和remove的区别是没有的话不会报错
# update 和add不同的是可以加多个值  加的时候要加别的集合huo{'xxx'},直接加字符串的话会把字符串拆分开加进去

# 关系测试

iphone7 = {'alex', 'rain', 'jack', 'mark'}
iphone8 = {'alex', 'jack', 'jucy', 'emma'}

# 交集
print(iphone7.intersection(iphone8))  # {'jack', 'alex'}  或 iphone7 & iphone8

# 差集
print(iphone7.difference(iphone8))  # {'rain', 'mark'}  或 iphone7 - iphone8  求只买iphone8的就反过来

# 并集 (把这两个列表加起来)
print(iphone7.union(iphone8))  # 或 iphone7 | iphone8。谁union谁都行, {'rain', 'jack', 'jucy', 'mark', 'emma', 'alex'}

# 对称差集,取交集相反(把不相交的取出来,或买了iphone7,或买了iphone8)
print(iphone7.symmetric_difference(iphone8))  # {'rain', 'jucy', 'mark', 'emma'}
# 等于下面步骤
s3 = iphone7 | iphone8
s4 = iphone7 & iphone8
print(s3 - s4)  # {'jucy', 'rain', 'mark', 'emma'}

# 子集和超集

iphone7.add('jucy')
iphone7.add('emma')

print(iphone7)
print(iphone7.issuperset(iphone8))  # True   或 >= iphone7>=iphone8
print(iphone8.issubset(iphone7))  # True   或 <= iphone8<=iphone7

# 判断是否不相交
print(iphone7.isdisjoint(iphone8))  # False

# 把差集赋值给iphone7
iphone7.update({'ann', 'li'})
print(iphone7.difference(iphone8))  # {'mark', 'rain', 'ann', 'li'}
iphone7.difference_update(iphone8)
print(iphone7)  # {'li', 'mark', 'rain', 'ann'}

猜你喜欢

转载自www.cnblogs.com/lshedward/p/9921876.html
今日推荐