Python小白学习笔记四(容器类型 5 集合 )
集合 set
定义
由一系列键值对组成的可变散列容器。
由一系列不重复的不可变类型变量(元组/数/字符串)组成的可变散列容器。
相当于只有键没有值的字典(键则是集合的数据)。
特点:去重复,无序性
基础操作:
创建空集合:
集合名 = set()
集合名 = set(可迭代对象)
创建具有默认值集合:
集合名 = {1, 2, 3}
集合名 = set(可迭代对象)
添加元素:集合名.add(元素)
删除元素:集合名.discard(元素)
运算
1.交集 & :返回共同元素。
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 & s2 # {2, 3}
2.并集 | :返回不重复元素
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 | s2 # {1, 2, 3, 4}
3.补集 - :返回只属于其中之一的元素
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s1 - s2 # {1} 属于s1但不属于s2
4.补集 ^ :返回不同的的元素
s1 = {1, 2, 3}
s2 = {2, 3, 4
s3 = s1 ^ s2 # {1, 4} 等同于(s1-s2 | s2-s1)
5.子集 < :判断一个集合的所有元素是否完全在另一个集合中
6.超集 > :判断一个集合是否具有另一个集合的所有元素
s1 = {1, 2, 3}
s2 = {2, 3}
s2 < s1 # True
s1 > s2 # True
注:相同或不同== !=:
判断集合中的所有元素是否和另一个集合相同。
s1 = {1, 2, 3}
s2 = {3, 2, 1}
s1 == s2 # True
s1 != s2 # False
子集或相同,超集或相同 <= >=
集合推导式
定义:使用简易方法,将可迭代对象转换为集合。
语法:
{表达式 for 变量 in 可迭代对象}
{表达式 for 变量 in 可迭代对象 if 条件}
1 # 集合 set
2 # 自动去重复,无序
3 # 创建
4 #法1: 集合名 = {元素1,元素2,...}
5 set01 = {"悟空","八戒","唐僧"}
6 #法2: 集合名 = set(可迭代对象)
7 list01 = ["悟空","八戒","唐僧","悟空","八戒","唐僧"]
8 set02 = set(list01)
9 print(set02)
10
11 #添加 集合名.add(元素)
12 set02.add("小白龙")
13 #不能定位的原因:1.无序性导致不能使用切片 2.不是键值对不能使用键查找值
14
15 #遍历
16 for item in set01:
17 print(item)
18
19 #删除
20 if "悟空" in set01:
21 set01.remove("悟空")
22 print(set01)
23
24 # 交并补
25 s01 = {1,2,3}
26 s02 = {2,3,4}
27 print(s01 & s02) #输出交集元素
28 print(s01 | s02) #输出并集元素
29 print(s01 ^ s02) #输出补集元素(所有)
30 print(s01 - s02) #输出单边补集,即s01中s02没有的元素
31
32 #子集
33 s03 = {1,2}
34 print(s03 < s01) #子集s03 超集s01(可理解为全集)