Python集合set详解

集合(set)的定义方式

集合的定义一般是由一对大括号{}括起的若干元素

set1 = {1, 2, 3}
print(set1)
print(type(set1))
# {1, 2, 3}
# <class 'set'>

需要注意的是,空集合的定义方式不能仅用一对空大括号进行定义

set1 = {}
print(set1)
print(type(set1))
# {}
# <class 'dict'>

可以看到,这里的大括号被识别成了空字典的定义方式,所以若要定义空集合,可以使用set()进行定义

set1 = set()
print(set1)
print(type(set1))
# set()
# <class 'set'>

集合的特性

集合具有无序性和互异性(集合中同样值的元素只能出现一次),以下为样例展示

set1 = {"asda", "gswt", "jigjh"}
print(set1)
# {'jigjh', 'asda', 'gswt'}

可见这个字符串集合的输出顺序是随机的

set1 = {4, 8, 1, 9, 0}
set2 = {9, 0, 5, 1, 3}
print(set1)
print(set2)
# {0, 1, 4, 8, 9}
# {0, 1, 3, 5, 9}

由上面的代码可以看出,这两个整型集合输出的顺序都是从小到大排列的,所以其实集合内部有一定的排序规则,但宏观上来看还是无序的,因为无序,所以我们也不能使用下标进行索引

set1 = {4, 8, 1, 9, 0}
print(set1[0])
# Traceback (most recent call last):
#   File "D:\Pythonproject\teach_day_01\demo01.py", line 2, in <module>
#     print(set1[0])
#           ~~~~^^^
# TypeError: 'set' object is not subscriptable

可以看到'set' object is not subscriptable,这里的subscriptable是无法进行下标索引的意思,subscript是“下标”的意思

而集合的互异性也可以理解为集合会默认去重

set1 = {4, 8, 1, 1, 9, 9, 0}
print(set1)
# {0, 1, 4, 8, 9}

注意,这里的去重时,同样值的元素,会保留先出现的那个,需要注意,在进行判断时,布尔类型的True和False会被视为1和0

set1 = {True, 1, 0, False}
print(set1)
# {0, True}

可以看到,集合中最后保留的是0和True,这是因为在定义时,True先于1出现,0先于False出现,所以最后保留的是这两个

集合常用方法

集合中添加元素的常用方法为add(),参数为要添加的元素

set1 = {1, 2, 3}
set1.add(4)
print(set1)
# {1, 2, 3, 4}

集合中删除元素的方法一般有以下几个

remove()

remove()函数的作用为删除指定元素,参数为要删除的元素

set1 = {1, 2, 3}
set1.remove(3)
print(set1)
# {1, 2}

注意remove()在删除失败的时候会报错

set1 = {1, 2, 3}
set1.remove(4)
print(set1)
# Traceback (most recent call last):
#   File "D:\Pythonproject\teach_day_01\demo01.py", line 2, in <module>
#     set1.remove(4)
# KeyError: 4
discard()

discard()函数的作用为删除指定元素,参数为要删除的元素

set1 = {1, 2, 3}
set1.discard(3)
print(set1)
# {1, 2}

与remove()不同的是discard()在删除失败的时候不会报错

set1 = {1, 2, 3}
set1.discard(4)
print(set1)
# {1, 2, 3}
pop()

pop()函数的作用是随机删除一个元素并且会返回删除元素的值

set1 = {1, 2, 3}
print(set1.pop())
print(set1)
# 1
# {2, 3}

与remove()相同,若删除失败会报错

set1 = {}
set1.pop()
print(set1)
# Traceback (most recent call last):
#   File "D:\Pythonproject\teach_day_01\demo01.py", line 2, in <module>
#     set1.pop()
# TypeError: pop expected at least 1 argument, got 0
clear()

clear()函数的作用是清空整个集合

set1 = {1, 2, 3}
set1.clear()
print(set1)
# set()

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值