一、集合
特性:(1)集合天生可以去重
(2)集合是无序的,说明不能使用下标进行取值
1、集合的定义
s = {1, 2, 3, 4, 5, 6, 7, 7, 1} # 集合,天生自动去重
print('s:',s)
s1 = {} # 不是集合,是个空字典
s2 = set() # 空集合的定义
print('s1类型:',type(s1))
print('s2类型:',type(s2))
运行结果:
2、list转集合后,会自动去重
l = [1, 2, 3, 2, 1, 3, 4, 3, 54, 3]
l = list(set(l))
print('l:',l)
运行结果:
3、集合可循环
s = {1, 2, 3, 4, 5, 6, 7, 7, 1}
for i in s:
print(i)
4、常用函数
s = {1, 2, 3, 4, 5, 6, 7, 7, 1}
s.add(8) # 添加元素
print('add元素后的s:',s)
s.update({9, 10, 11}) # 把另外一个集合,加入这个集合里面
print('update元素后的s:',s)
s.remove(4) # 删除指定元素
print('remove元素后的s:',s)
运行结果:
二、集合的关系运算
# 可以用来做关系测试,交集、并集、差集、对称差集
l1 = [1, 2, 3, 4, 5, 6]
l2 = [2, 3, 6, 8, 9]
l1 = set(l1)
l2 = set(l2)
# 取交集,就是两个集合里面都有的元素
print("使用&符号取交集", l1 & l2)
print("使用函数取交集", l1.intersection(l2))
# 取并集,两个集合里的元素合并起来,都有的会去重
print("使用|符号取并集", l1 | l2)
print("使用函数符号取并集", l1.union(l2))
# 取差集,在A集合存在,B集合不存在的元素
print("使用-符号取差集", l1 - l2)
print("使用函数取差集", l1.difference(l2))
# 对称差集,把A集合和B集合里面相同的元素去掉
print("使用^符号取对称差集", l1 ^ l2)
print("使用函数取对称差集", l1.symmetric_difference(l2))
a = set(list(range(10)))
b =[2, 3, 4]
b = set(b)
# 判断a集合是不是b集合的父集
print("判断a集合是不是b集合的父集", a.issuperset(b))
# 判断a集合是不是b集合的子集
print("判断a集合是不是b集合的子集", a.issubset(b))
运行结果: