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

1 集合set

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

哈希表

Python学习笔记(九):set集合的常用方法_第2张图片

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

你可能感兴趣的:(Python,python,数据结构,列表,散列表)