Python学习笔记(九):set集合的常用方法

1 集合set

Set集合底层可以通过红黑树与哈希表实现,和字典dict的区别就是字典中每个元素存储了key和value,而集合则只存储了value。python中的set应该也是用的哈希表,我本来想通过pycharm看看set的源码,结果一看是这样的。
在这里插入图片描述
具体内容居然是pass,看了看资料才知道,原来这是pycharm自行创建的假的set类,真正的set类使用c语言写的,这么做也是为了较好的代码提示,更容易理解。但还是有一些标准库是通过python实现的,如os,这些代码通过追踪就能看到源码了。而字典dict底层就是用c语言通过哈希表实现的。字典源码:字典dict源码

哈希表

在这里插入图片描述

1.1 创建集合

创建集合使⽤ {} 或 set() , 但是如果要创建空集合只能使⽤ set() ,因为 {} ⽤来创建空字典。

# 1.用{}
set1={"hello", "world"}
print(set1)
# 2.用() 构造方法
set2=set()
print(set2)
set3=set("nihao")
print(set3)
{'world', 'hello'}
set()
{'o', 'h', 'a', 'n', 'i'}

1.2 添加元素

1.2.1 add方法
add(elem)
	Add element elem to the set.

因为集合有去重功能,所以,当向集合内追加的数据是当前集合已有数据的话,则不进⾏任何操作。

set1={2,4,5}
set1.add(43)
print(set1)
{2, 43, 4, 5}
1.2.2 update方法
update(*others)
set |= other | ...
	Update the set, adding elements from all others.

update() 追加的数据是序列。序列就是那些可以迭代的类,字符串、列表、元组之类的。

set1={2,4,5,43}
set1.update([2,4,5,6])
print(set1)
{2, 4, 5, 6, 43}

1.3 删除元素

1.3.1 remove方法

remove(),删除集合中的指定数据,如果数据不存在则报错。

s1={4,5,67}
s1.remove(67)
print(s1)
{4, 5}
1.3.2 discard方法

discard(),删除集合中的指定数据,如果数据不存在也不会报错。

s1={4,5,67}
s1.discard(68)
print(s1)
{67, 4, 5}
1.3.3 pop方法
pop()
	Remove and return an arbitrary element from the set.
	Raises KeyError if the set is empty.

pop(),随机删除集合中的某个数据,并返回这个数据。

s1={4,5,67}
print(s1.pop())
print(s1)
67
{4, 5}

1.4 查找数据

用in和not in 就完事了。

s1={4,5,67,7}
print(4 in s1)
print(5 not in s1)
True
False
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值