本人CSDN博客专栏:https://blog.csdn.net/yty_7
Github地址:https://github.com/yot777/Python-Primary-Learning
5.7 六种数据类型之五: Sets(集合)
集合(set)是一个无序不重复元素的集。根据定义,我们可以得到集合的以下三个特点:
特点一:元素不允许重复,如果在初始化一个列表时输入了重复的元素,Python会自动将重复的元素去掉,只保留一个
特点二:元素没有特定顺序,同一个集合多次使用的时候元素不一定按照原有顺序排列
特点三:不能加索引来访问特定元素,但可以在for循环中遍历所有元素
可以使用大括号 或者 set()函数创建set集合,注意:创建一个空集合必须用 set() 而不是 { }
【如果单独是一个大括号{ }表示一个空字典】
# 举例1:
>>> s = {1,2,3,1,3,4,5}
>>> print(s)
{1, 2, 3, 4, 5} #Python会自动将重复的元素去掉,只保留一个
>>> print(s[0]) #报错,因为集合中的元素不能加索引
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing
使用add()函数向集合中添加元素。注意:因为元素在集合中是无序的,因此添加元素的位置也不确定
# 举例2:
>>> t=set() #创建一个空集合
>>> t.add('a') #向集合中添加元素a
>>> print(t)
{'a'}
>>> t.add('b') #向集合中添加元素b
>>> print(t)
{'b', 'a'} #元素b的位置出现在a的前面
>>> t.add('c')
>>> print(t) #向集合中添加元素c
{'b', 'c', 'a'} #元素c的位置在a和b中间,可见集合中元素的位置是不确定的
>>> t.add('a')
>>> print(t) #集合中已有元素a因此不会再次添加元素a
{'b', 'c', 'a'}
可以用运算符来进行集合的元素关系测试和消除重复元素
# 举例3:
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'r', 'c', 'a', 'd', 'b'} #集合a的元素被Python自动去重
>>> b
{'c', 'a', 'l', 'm', 'z'} #集合b的元素被Python自动去重
# 举例4:
>>> a - b #求a和b的差集
{'d', 'b', 'r'}
>>> a | b #求a和b的并集
{'r', 'c', 'a', 'd', 'b', 'l', 'm', 'z'}
>>> a & b #求a和b的交集
{'c', 'a'}
>>> a ^ b #求a和b中不同时存在的元素
{'r', 'd', 'b', 'l', 'm', 'z'}
参考教程:
廖雪峰的Python教程
https://www.liaoxuefeng.com/wiki/1016959663602400
廖雪峰的Java教程
https://www.liaoxuefeng.com/wiki/1252599548343744
Python3 教程 | 菜鸟教程
https://www.runoob.com/python3/
如果您觉得本篇本章对您有所帮助,欢迎关注、评论、点赞!Github欢迎您的Follow、Star!