码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-11-07 13:16:18      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:display   交集   als   区别   ack   disjoint   不同   拆分   子集和   

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

作用(集合的重点):
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‘}

 

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

标签:display   交集   als   区别   ack   disjoint   不同   拆分   子集和   

原文地址:https://www.cnblogs.com/lshedward/p/9921876.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!