c++ set输出元素_一步一步学Python3(小学生也适用) 第十四篇: 集合Set类型

一、集合(set)创建

Python中的集合(set)是用来保存不重复的元素,它是一个无序的序列。集合中的元素都是唯一的,互不相同。

1.1 Python集合创建

我们可以用大括号{ } 或者set() 创建集合,但必须注意,创建一个空集合只能用set()而不能用{},因为在前面学习中我们创建一个空字典是就是用的{}。集合中的相邻元素之间用逗号(,)分隔。

 set1 = set()       #创建一个空的字典set2 = {}          #用{}创建一个空的序列,用于检测是否是集合还是字典print('set1类型:',type(set1) )print('set2类型:',type(set2))

运行结果:

 set1类型:set2类型:

集合中的元素是没有个数限制的。

集合中的元素只能是不可变的数据类型,包括整形、浮点型、字符串,元组,不能是列表,字典及集合类型。

set语法

 class set([iterable])

 set1 = set({{'Tom':18,'Lim':20}})  #集合中的元素是字典运行结果:Traceback (most recent call last):  File "g:/老树Python/python38_3VScode/democode/T14.py", line 1, in    set1 = set({{'Tom':18,'Lim':20}})TypeError: unhashable type: 'dict'

 set1 = set({['a','b','c'],[1,2,3]})   #集合中的元素是列表运行结果:Traceback (most recent call last):  File "g:/老树Python/python38_3VScode/democode/T14.py", line 1, in    set1 = set({['a','b','c'],[1,2,3]})TypeError: unhashable type: 'list'

正确的Python集合创建方法:

 set1 = set([1,2,3,4])             set2 = set((1,2,3,4))set3 = set('老树Python')print('set1类型:',type(set1))print(set1)print('set2类型:',type(set2))print(set2)print('set3类型:', type(set3))print(set3)

运行结果:

 set1类型: {1, 2, 3, 4}set2类型: {1, 2, 3, 4}set3类型: {'t', 'o', 'P', '老', '树', 'y', 'n', 'h'}

集合中的元素是唯一的,所以当我们创建集合是,里面有重复的元素,只会保留一份。所以集合具有去重功能。

 set1 = {3,2,1,2,('a','b','c'),'b','b'}print('set1类型:',type(set1))print(set1)

运行结果:

 set1类型:                   #类型为集合(set){1, 2, 3, 'b', ('a', 'b', 'c')}           #把相同的元素2和'b'已经去掉相同的,仅保留一份

需要注意:Python中的集合set是无序的,所以每次输出时元素的排列顺序可能都不相同

Python中有两种集合类型,一种是set类型的集合,另一种是frozenset类型的集合,它们唯一的区别是,set类型集合可以做添加、删除元素的操作,frozenset集合不行。本篇只介绍set类型集合。

二、Python集合添加元素

 set.add(x)

将元素x添加到集合set中,如果元素已存在,则不进行任何操作

 set1 = set(['BeiJin','ShangHai','GuangZhou'])print(set1)set1.add('ShenZhen')print(set1)set1.add(('WuHan','ChangSha'))                #添加元组,不可变,作为一个元素添加到set中print(set1)set1.add(['WuHan', 'ChangSha'])               #添加列表,出错print(set1)

运行截屏:

3dc5c5c4481a18574677bb2aa44b2268.png

添加的元素x只能为一个且不可变类型如:字符串,元组,整型,浮点型的。

 set1 = set(['BeiJin','ShangHai','GuangZhou'])print(set1)set1.add('ShenZhen','ChongQin')           # 添加了两上字符串,会报错

运行结果:

 {'GuangZhou', 'BeiJin', 'ShangHai'}Traceback (most recent call last):  File "g:/老树Python/python38_3VScode/democode/T14.py", line 3, in    set1.add('ShenZhen','ChongQin')TypeError: add() takes exactly one argument (2 given)

另一个方法:update,可以添加元素,且参数可以是列表,元组,列表,字典等

 set.update(x)

 set1 = set(['BeiJin','ShangHai','GuangZhou'])print(set1)set1.update({'ShenZhen', 'ChongQin'})         #参数是setprint(set1)set1.update(('WH', 'CS'))                     #参数是元组print(set1)set1.update(['CA','FZ'])                      #参数是列表print(set1)

运行结果:

 {'BeiJin', 'GuangZhou', 'ShangHai'}{'ShenZhen', 'BeiJin', 'ShangHai', 'ChongQin', 'GuangZhou'}{'ShenZhen', 'BeiJin', 'WH', 'ShangHai', 'ChongQin', 'CS', 'GuangZhou'}{'BeiJin', 'WH', 'ShenZhen', 'FZ', 'CA', 'ShangHai', 'CS', 'ChongQin', 'GuangZhou'}

由上可看出,使用.update方法添加的元素是集合,元组,列表时,update方法直接把集合,元组或列表中元素分别提取出来添加到原有集合中。

三、Python集合移除元素

 set.remove(x)

 set1 = set(['BeiJin','ShangHai','GuangZhou','WuHan','ChangSha'])print(set1)set1.remove('WuHan')              #移除元素'WuHan'print(set1)set1.remove('ChenDu')             #移除一个集合中不存在的元素,会报错

运行结果:

 {'ShangHai', 'BeiJin', 'GuangZhou', 'ChangSha', 'WuHan'}{'ShangHai', 'BeiJin', 'GuangZhou', 'ChangSha'}Traceback (most recent call last):  File "g:/老树Python/python38_3VScode/democode/T14.py", line 5, in    set1.remove('ChenDu')             #移除一个集合中不存在的元素KeyError: 'ChenDu'

由上可以看到使用set.remove(x)方法,如果移除一个不存在的元素,会报错。

此时我们可以使用另一种方法来操作

 set.discard(x)

 set1 = set(['BeiJin','ShangHai','GuangZhou','WuHan','ChangSha'])print(set1)set1.discard('WuHan')              #移除元素'WuHan'print(set1)set1.discard('ChenDu')             #移除一个集合中不存在的元素    print(set1)      

运行结果:

 {'ShangHai', 'GuangZhou', 'WuHan', 'BeiJin', 'ChangSha'}{'ShangHai', 'GuangZhou', 'BeiJin', 'ChangSha'}{'ShangHai', 'GuangZhou', 'BeiJin', 'ChangSha'}

四、计算集合元素个数

 set1 = set(['BeiJin','ShangHai','GuangZhou','WuHan','ChangSha'])print(len(set1))         #用len()方法求集合元素个数

五、判断元素是否在集合中存在

 x in set

判断元素x是否在集合s中,存在返回True,不存大返回False

 set1 = set(['BeiJin','ShangHai','GuangZhou','WuHan','ChangSha'])print('BeiJin' in set1)print('HangZhou' in set1)

运行结果:

 True                    #'BeiJin' 在集合元素中,返回TrueFalse                   #'HangZhou'不在集合元素中,返回False

六、清空集合

 set.clear()

 set1 = set(['BeiJin','ShangHai','GuangZhou','WuHan','ChangSha'])set1.clear()print(type(set1))print(set1)

运行结果:

                           #清空后的类型set()                                  #空集合

结束语:

##### 这一篇只是简单的介绍了集合的基础知识,没有深入的往下讲。集合set中还有其他的一些方法,大家自行了解一下。在实际使用或进阶学习过程中再深入去了解,在初学阶段,还是把基础的知识弄懂比好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值