Python数据类型详解——集合
Python数据类型详解——集合
一、定义
集合跟列表有点像,也是可以存一堆数据的,不过它有几个独特的特点:
1、集合里的元素不可变,即不能再集合里存储列表(list)、字典(dict)。字符串、数字、元组等不可变类型可以存储再集合中。
2、天生去重,即在集合里不会出现重复元素,就算你故意写入重复元素,集合也会自动去掉重复的,只保留一个。
3、无序,集合中的元素没有先后之分。
二、语法
1、创建集合
a = {2, 321, 'Kwan', 1, '小明', 'Kwan', 321}
2、帮助列表去重
将列表转换成集合,再转回列表,即可实现列表的去重
a = ['Kwan', 'Kwan', 21, 21, '小明']
a = list(set(a)) # 先转换成集合,再转换成列表
三、增删查改操作
a = {'Kwan', 21, 'male', 'LL', 43}
# 增
a.add('Kobe')
# 删
a.discard('male') # 用discard()方法,删除指定的元素,若指定元素不存在,则do nothing
a.pop() # 用pop()方法,随即删除一个元素并返回这个元素
a.remove('LL') # 用remove()方法,同discard
# 查
if 'Kwan' in a: # 用in方法
pass
# 改(没有改这个操作,集合不能改)
四、关系运算
a1 = {'Kwan', '小明', 'LL', 'PP', 'Kobe'}
a2 = {'小明', 'LL', 'Alice', 'Jack', 'Neal'}
print(a1 & a2) # &交集运算
print(a1 | a2) # |并集运算
print(a1 - a2) # -差集运算
print(a2 - a1)
print(a1 ^ a2) # ^对称差集运算
print(a1.isdisjoint(a2)) # 判断两个集合是不是相交的,返回True或者False
print(a1.issubset(a2)) # 判断a1是不是a2的子集,返回True或者False
print(a1.issuperset(a2)) # 判断a1是不是a2的父集,返回True或者False