集合set
一、什么是集合?
集合是无序的,不重复的数据集合。集合本身是可变的,但是,它里面的元素是不可变类型的。
1、集合的创建
可用 { }(大括号)或者set()来创建集合。注意,空集合是用set()来表示。
set1 = set({1,2,3})
set2 = {1,2,3}
print(set1,set2)
2、集合的增加
有add和update(迭代增加)两种增加方式。
set1.add(x):添加一项.
set1.update(x):添加多项,可以添加字典、列表和元祖。
# add set1 = {1,2,3} set1.add("hello") print(set1) # {1, 2, 3, 'hello'} # update 迭代增加 set1.update("xiao") print(set1) # {'i', 1, 2, 3, 'o', 'x', 'a', 'hello'} set1.update([4,5]) print(set1) # {4, 1, 2, 3,5} set1.update({"name":"k","sex":"F"}) print(set1) # {1, 2, 3, 'name', 'sex'}
3、集合的修改
集合里面的元素是不可变的,所以不能修改集合里面的元素。
4、集合的删除
删除元素有remove,discard,pop方法,清空集合是clear,删除集合是del set。
set1 = {1,2,3,"hello"}
# remove 删除指定元素,不存在会报错
set1.remove("hello")
print(set1)
set1.remove("wo") #remove删除不存在的元素,会报错,keyerror
# discard
set1.remove(1)
print(set1)
set1.discard("wo") #discard删除不存在的元素,不会报错
# pop 随机删除
set1.pop()
print(set1)
# clear 清空集合
set1.clear()
print(set1) # 返回set() 空集合
# del 删除集合
del set1
5、集合的其他操作
5.1交集(&或者intersection)
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 & set2) # {4, 5}
print(set1.intersection(set2)) # {4, 5}
5.2并集(| 或者union)
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7, 8}
print(set1.union(set2)) # {1, 2, 3, 4, 5, 6, 7, 8}
5.3差集(- 或者 difference)
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 - set2) # {1, 2, 3}
print(set1.difference(set2)) #{1, 2, 3}
5.4 反交集 (^ 或者symmetric_difference)
# 反交集 set1和set2除了交集外的其他元素集合 set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} print(set1 ^ set2) #{1, 2, 3, 6, 7, 8} print(set1.symmetric_difference(set2)) #{1, 2, 3, 6, 7, 8}
5.5子集和超集
set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
print(set1 < set2) # True set1是set2的子集
print(set1.issubset(set2)) # True
6、frozenset不可变集合,让集合变成不可变类型
set1 = {1,2,3,4,5}
set2 = frozenset(set1)
print(set1,type(set1)) # {1, 2, 3, 4, 5} <class 'set'>
print(set2,type(set2)) # frozenset({1, 2, 3, 4, 5}) <class 'frozenset'>

浙公网安备 33010602011771号