目录
一、集合格式及特点
- 格式:{元素1,元素2,元素3,......}
- 特点:无序不重复,所以不能用下标访问,可以转换后再访问。
二、定义集合
- 空集合
注意:不能用 set_data = {}定义空集合,这种形式定义出来的类型是字典。
- 集合
三、集合转换
- iterable转换为集合
str_data = "1212"
tuple_data = (1, 2, 1, 2)
list_data = [1, 2, 1, 2]
dict_data = {1: 2, 2: 3}
set_data1 = set(str_data)
print(set_data1)
set_data2 = set(tuple_data)
print(set_data2)
set_data3 = set(list_data)
print(set_data3)
set_data4 = set(dict_data)
print(set_data4)
- 集合转换为iterable
set_data = {1, 2, 3, 3} list_data = list(set_data) print(list_data) print(list_data[0])
四、使用方法
- add(element):添加元素。
set_data = {1, 2, 3} set_data.add(5) print(set_data)
-
clear():清除所有元素。
set_data = {1, 2, 3} set_data.clear() print(set_data)
-
difference(s):比较不同部分。(有返回值)
set_data1 = {1, 2, 3} set_data2 = {2, 3, 4} print(set_data1.difference(set_data2)) print(set_data2.difference(set_data1))
注意:返回一个新的集合,这个集合是由两个或多个集合的不同部分组成,并且返回的是调用者的不同部分。
-
copy():拷贝
set_data = {1, 2, 3} print(set_data) set_data.copy() print(set_data)
-
difference_update(s):用于移除两个集合中都存在的元素。(没有返回值)
set_data = {1, 2, 3} set_data1 = {2, 3, 4} set_data.difference_update(set_data1) print(set_data)
-
discard(element):删除元素
set_data = {1, 2, 3} set_data.discard(2) print(set_data)
(如果元素不存在,则什么也不做)
-
intersection(s):取两个集合的交集。(产生一个新集合)
set_data1 = {1, 2, 3} set_data2 = {2, 3, 4, 5} print(set_data1.intersection(set_data2))
-
intersection_updata(s):取两个集合的交集。(没有返回值)
set_data1 = {1, 2, 3} set_data2 = {2, 3, 4, 5} set_data2.intersection_update(set_data1) print(set_data2)
-
isdisjoint(s):判断两个集合是否有交集。
set_data1 = {1, 2, 3} set_data2 = {4, 5} print(set_data1.isdisjoint(set_data2))
有交集返回true,没有交集返回false。
-
issubset(s):判断另一个集合是否包含当前的集合。
set_data1 = {1, 2, 3} set_data2 = {1, 2, 3, 4} print(set_data1.issubset(set_data2))
包含则返回true,不包含则返回false。
-
issuperset(s):判断当前集合是否包含另一个集合。
set_data1 = {1, 2, 3} set_data2 = {2, 3} print(set_data1.issuperset(set_data2))
包含则返回true,不包含则返回false。
-
pop():随机移除一个元素。
set_data1 = {1, 2, 3} print(set_data1.pop())
1、如果集合的元素都是数字, 删除时, 删掉的是最小的数字, 其余数字升序排列
2、如果集合的元素是非数字, 删除时, 删掉的是随机的元素, 其余元素随机排列
3、如果集合里既有数字又有非数字元素, 删除时:
若删掉的是数字, 则一定是删掉了最小的, 其他数字升序排列, 非数字元素随机排列;
若删掉的非数字, 则一定是随机删掉了一个, 其他数字升序排列, 非数字则随机排列.
- remove():删除元素。
set_data1 = {1, 2, 3} set_data1.remove(2) print(set_data1)
(如果删除的元素不在集合里,则会报错)
-
union():返回两个集合的并集。
-
update(set):给集合添加元素。