程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

python3的基础学习之集合 python 集合类型及操作介绍

hfteth 2024-12-18 13:23:47 技术文章 19 ℃


有点长,适合收藏,然后自己慢慢在python下执行一遍,有收获。


1.集合

1.1 创建集合

1.2 集合(set)是一个无序的不重复元素序列。

1.3 可以使用大括号 { } 或者 set() 函数创建集合。

1.4 注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。


2.集合的特点一:去重==去除重复的数据

2.1 也就是,不允许有重复的数据时,建议采用集合的方式

2.2 类似的还有列表[],元组().

2.3 比如一组数据:10,20,30,40,50


2.3.1 集合{10,20,30,40,50}

s1={10,20,30,40,50}


2.3.2 列表[10,20,30,40,50]

s2=[10,20,30,40,50]


2.3.3 元组(10,20,30,40,50)

s3=(10,20,30,40,50)


2.3.4 操作如下:

>>> s1={10,20,30,40,50}

>>> s2=[10,20,30,40,50]

>>> s3=(10,20,30,40,50)

>>> print(s1)

{40, 10, 50, 20, 30} #无序的

>>> print(s2)

[10, 20, 30, 40, 50] #有序的

>>> print(s3)

(10, 20, 30, 40, 50) #有序的

>>>


3.集合的特点二:无序===没有下标的概念

3.1 如s1={10,20,30,40,50}

>>> print(s1)

{40, 10, 50, 20, 30} #无序的

3.2 继续添加数据

sn={10,20,30,40,50,60,70,80,90}

3.3 效果:

>>> sn={10,20,30,40,50,60,70,80,90}

>>> print(sn)

{70, 40, 10, 80, 50, 20, 90, 60, 30} #无序的


4.创建空集合

4.1 创建空集合,用set(),不能用{},因为{}是用来创建一个空字典。

4.2 如

>>> s4=set()

>>> print(s4)

set()

>>> print(type(s4)) #type函数,是判断类型

<class 'set'> #类型是集合set

>>> s5={}

>>> print(s5)

{}

>>> print(type(s5))

<class 'dict'> #类型是字典dict

>>>


5.集合的常见操作方法:增加数据的方法

5.1 add和update的方法

5.2 add方法------增加的是单一数据

5.2.1 s1={10,20,100}

s1.add(30) #增加30

print(s1)

s1.add(10) #增加10,追加已有的数据

print(s1)

5.2.2 效果

>>> s1={10,20,100}

>>> s1.add(30)

>>> print(s1)

{100, 10, 20, 30} #无序添加,任意位置的添加

>>> s1.add(10)

>>> print(s1)

{100, 10, 20, 30} #追加已有数据,去重特点,数据并没有增加,也没有报错

>>>


5.3 update方法-----增加的是列表

5.3.1 s1={10,20,100}

s1.update([30,40,50,60])

print(s1)

5.3.2 效果

>>> s1={10,20,100}

>>> s1.update([30,40,50,60])

>>> print(s1)

{100, 40, 10, 50, 20, 60, 30}

>>>

5.3.3 s1={10,20,100}

s1.update([10,20,50,60])

print(s1)

5.3.4 效果

>>> s1={10,20,100}

>>> s1.update([10,20,50,60])

>>> print(s1)

{100, 10, 50, 20, 60} #重复的数据并没有增加

>>>

5.3.5 如果用add看看

s1={10,20,100}

s1.add([10,20,50,60])

5.3.6 效果,报错

>>> s1={10,20,100}

>>> s1.add([10,20,50,60]) #add增加的是单一数据,不是列表

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: unhashable type: 'list' #不能是列表

>>>

5.3.7 反之,update追加一个单一数据看看

s1={10,20,100}

s1.update(60)

5.3.8 效果,报错

>>> s1={10,20,100}

>>> s1.update(60) #update增加的不是单一数据,而是一组列表数据

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: 'int' object is not iterable

>>>


6.集合的常见操作方法:删除数据的方法

6.1 三种方法:remove(),discard()和pop()的方法

remove() #如果元素不存在,则会发生报错。

discard() #如果元素不存在,则不会发生报错。


6.2 remove函数

>>> s1={10,20,100}

>>> s1.remove(10)

>>> print(s1)

{100, 20}

>>> s1.remove(30) #如果元素不存在,则会发生报错。

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

KeyError: 30

>>>


6.3 discard函数

>>> s1={10,20,100}

>>> s1.discard(10)

>>> print(s1)

{100, 20}

>>> s1.discard(30) #如果元素不存在,则不会发生报错。

>>> print(s1)

{100, 20}

>>>


6.4 pop函数------随机删除一个数据,并返回这个数据,网上有说是随机,这个是不准确的

s1={10,20,100}

s1.pop()

print(s1)

效果

>>> s1={10,20,100}

>>> s1.pop()

100

>>> print(s1)

{10, 20}

>>>

set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。

>>> s1={20,80,30,90,10,100,50}

>>> s1.pop() #将随机排序,可能是由低向高,也可能是由高向低,将左边最大的那个数100,删除,并返回这个数

100

>>> print(s1) #注意原集合并没有还是无序状态

{10, 80, 50, 20, 90, 30}

>>>

如下,要么最大值,要么最小值,随机指的是这个

-------

>>> s1={20,80,30,90,10,100,50}

>>> s1.pop()

100

>>> s1={20,80,30,90,10,50}

>>> s1.pop()

10

>>> s1={20,80,30,90,50}

>>> s1.pop()

80

>>>

------

>>> s1={20,80,30,90,10,100,50}

>>> s1.pop()

100

>>> s1={20,80,30,90,10,100,50}

>>> s1.pop()

100

>>> s1={60,20,80,30,90,10,100,50}

>>> s1.pop()

100

>>> s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}

>>> s1.pop()

1

>>> s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}

>>> s1.pop()

1

>>> s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}

>>> s1.pop()

1

>>>

------


7.集合的常见操作方法:查找数据的方法

7.1 in 和 not in

7.2 比如s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}

7.3 判断100是不是在集合中

print(100 in s1) #返回True

7.4 判断500是不是在集合中

print(500 not in s1) #返回True

7.5 效果

>>> s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}

>>> print(100 in s1)

True

>>> print(500 not in s1)

True

>>> print(500 in s1)

False

>>>


8.集合的常见操作方法:计算集合元素个数

8.1 语法格式如下:len(s)

8.2 s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}

8.3 效果

>>> s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}

>>> len(s1)

15


9.集合的常见操作方法:清空集合

9.1语法格式如下:clear()

9.2 s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}

9.3 效果

>>> s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}

>>> s1.clear()

>>> print(s1)

set()

>>>

Tags:

最近发表
标签列表