开发者学堂课程【Python入门 2020年版:集合的基本使用】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10321
集合的基本使用
内容介绍:
一、Set 的概述
二、集合的数据特点
一、set的概述
集合( set )是一个无序的不重复元素序列,可以使用大括号或者 set ()函数创建。
需要注意的是{}有两种意思,即字典和集合。{}里如果放的是键值对,它就表示的是一个字典;如果{}中放的是单个的值,表示的就是一个集合。
1、字典创建方式:
person ={'
name
'
:
'
zhangsan
'
,
'
age
'
:18}
则表示的是字典
2、集合创建方式:
x ={'
hello
'
,1,
'
good
'
}
表示的就是集合
二、集合的数据特点
1、不重复
举例说明:
names ={''
zhangsan
'
,
'
lisi
'
,
'
tony
'','
jack
'
,
'
lisi
','
jack
'
'}
,此时在集合里写入了多个数据,有张三、李四、Jack、Tony,且 Jack 和李四都被写入了两次。
此时若打印出集合中的数据,需要输入:print ( names )
,运行后发现结果为{'
'
zhangsan
'
,
'
lisi
'
,
'
tony
','
jack
'
'}
,从运行结果可以看出重复的数据会被自动去除。
2、无序
无序对于集合来说,就会产生一个问题,即无法准确地取到某一个数据,可以看到打印出的数据是没有下标的
3、Set中进行增删改查
由于集合中的数据没有下标与key value,因此若对set 进行增删改查,就需要一些方法。有些同学可能会说将集合变成列表,当然这是可以的,变成列表之后再对列表进行增删改查。实际上直接对 set 进行增删改查也是可以的,但是并不常用,因为打印结果是不确定的,可能第一次的运行结果为一种情况,再次运行之后的结果就会变成另一种情况,因此我们只进行简单的讲解。首先搜索出set的相关使用方法。
Ø 例如 add,从名字我们就可以看出这是一个增加的方法,输入以下代码:
names . add
('阿珂')
print ( names )
打印输出结果为:{'
'
zhangsan
'
,
'
lisi
'
,
'
tony
'
,
'阿珂','
jack
'
'}
,可以发现集合中多了数据'阿珂',当然'阿珂'的位置并不确定。
Ø pop 表示随机删除一个数据
names . pop ()
print ( names )
运行后可以发现删除的数据是随机的
Ø remove 表示删除一个指定的元素
names . remove (' jack ')
print ( names )
运行后结果为{''zhangsan','lisi',' tony ','阿珂''}
注意:如果被指定的元素在集合中不存在,运行时则会报错
Ø union 是将多个集合合并生成一个新的集合
names . union
({'刘能','赵四'})
print ( names )
打印结果并没有变化,如果按下面代码进行输入并打印:print( names . union
({'刘能','赵四'}))
print ( names )
打印结果就会将名字放在一起:{''阿珂','刘能','赵四','tony','lisi''}
Ø update是将B拼接到A里
names . update
({'刘能','赵四'})
print ( names )
输出结果也为{''阿珂','刘能','赵四','tony','lisi''},也可以将刘能和赵四添加进来。
update 和 union 不仅可以使用{}添加集合,也可以使用[]添加列表,还可以使用()添加元组
Ø clear 表示清除集合中的数据
names . clear ()
print ( names )
输出结果为set(),需要注意的是:空集合的表示方式并不是{},{}表示的是空字典,空集合需要用set()表示
4、总结
上述展示了集合上的增删改,可以发现并没有查的功能,这是因为集合中的数据都是无序的,而查询一般都需要数据的下标或是 key value,因此在集合中很难实现查询的功能。
count 功能也不常用,因为在集合中的数据是不重复的,使用 count 语句后的结果不是1就是0;
而若使用print(
'
jack
'
in names)
结果就不一样了,结果为 False,因为jack并不在集合中,已经在前面的步骤中删除了。