Python集合常用函数使用详解(内附详细案例)

举报
士别三日wyx 发表于 2021/12/31 23:05:21 2021/12/31
【摘要】 「作者主页」:士别三日wyx   此文章已录入专栏《Python入门到精通》   2021最新版Python小白教程,针对0基础小白和基础薄弱的伙伴学习 ...

「作者主页」:士别三日wyx
  此文章已录入专栏《Python入门到精通》
  2021最新版Python小白教程,针对0基础小白和基础薄弱的伙伴学习

提示:点击列表中蓝色「函数名」可直达函数解析区域

函数名 作用 使用
len 获取集合长度 len( set )
add 添加元素 set.add( ‘text’ )
update 添加集合 set.update( set1 )
remove 删除元素 set.remove( ‘text’ )
discard 删除元素 set.discard( ‘text’ )
pop 删除随机元素 set.pop( ‘text’ )
union 合并多个集合 set.union( set1, set2 …)
difference 获取与其他集合不同的元素 set.difference( set1 )
difference_update 只保留与其他集合不同的元素 set.difference_update( set1 )
intersection 获取与其他集合的相同元素 set.intersection( set1 )
intersection_update 只保留与其他集合相同的元素 set.intersection_update( set1 )
isdisjoint 判断两个集合是否有相同元素 set.isdisjoint( set1 )
issubset 判断是否被其他集合包含 set.issubset( set1 )
issuperset 判断是否包含其他集合 set.issuperset( set1 )
clear 清空集合 set.clear()
copy 复制集合 set.copy()

add()

语法

set.add( element )

  
 
  • 1

参数

  • element:需要添加的元素(数值、字符串或元组)

向集合中「添加元素」

set1 = {1, 2, 3, 4}
set1.add(5)  # 添加数值
set1.add('text')  # 添加字符串
set1.add((7,8,9))  # 添加元组
print(set1)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

输出:

{1, 2, 3, 4, 5, (7, 8, 9), 'text'}

  
 
  • 1

集合是「无序」的,对于添加的元素,不能保证排列顺序


添加「相同」的元素

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

  
 
  • 1
  • 2
  • 3

输出:

{1, 2, 3, 4}

  
 
  • 1

集合「不允许元素重复」,如果添加的元素已经存在,则不会添加,当然,也不会报错

update()

语法

set.update( set )

  
 
  • 1

参数

  • set:需要添加的集合

「添加另一个集合」
set1 = {'zhangsan', 'lisi', 'wangwu'}
set2 = {1, 2, 3}
set1.update(set2)
print(set1)

  
 
  • 1
  • 2
  • 3
  • 4

输出:

{1, 'zhangsan', 2, 3, 'lisi', 'wangwu'}

  
 
  • 1


由于集合中的元素「不可重复」,两个集合中的重复元素只会添加一次,可以起到「去重」的效果

set1 = {'zhangsan', 'lisi', 'wangwu'}
set2 = {'zhangsan', 'lisi', 1}
set1.update(set2)
print(set1)

  
 
  • 1
  • 2
  • 3
  • 4

输出:

{'lisi', 1, 'wangwu', 'zhangsan'}

  
 
  • 1

remove()

语法

set.remove( value )

  
 
  • 1

参数

  • value:需要删除的元素

从集合中删除「指定元素」

set1 = {'zhangsan', 'lisi', 'wangwu'}
set1.remove('zhangsan')
print(set1)

  
 
  • 1
  • 2
  • 3

输出:

{'lisi', 'wangwu'}

  
 
  • 1


「不存在」
set1 = {'zhangsan', 'lisi', 'wangwu'}
set1.remove('aaa')

  
 
  • 1
  • 2

输出:

Traceback (most recent call last):
  File "E:/data/PrCharm/test/test.py", line 2, in <module>
    set1.remove('aaa')
KeyError: 'aaa'
# 键错误:‘aaa’,即集合中不存在这个元素

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

discard()

语法

set.discard( value )

  
 
  • 1

参数

  • value:需要删除的元素

删除列表中「指定元素」

set1 = {'zhangsan', 'lisi', 'wangwu'}
set1.discard('zhangsan')
print(set1)

  
 
  • 1
  • 2
  • 3

输出:

{'wangwu', 'lisi'}

  
 
  • 1


「不存在」
set1 = {'zhangsan', 'lisi', 'wangwu'}
set1.discard('aaa')
print(set1)

  
 
  • 1
  • 2
  • 3

输出:

{'wangwu', 'lisi', 'zhangsan'}

  
 
  • 1

pop()

语法

set.pop()

  
 
  • 1

参数

  • 返回值:被删除的项目

pop() 函数用来删除集合中最后一位元素,由于集合不能保证元素的排列顺序,排在最后一位的元素是随机的,因此,pop()可以「随机删除」一位元素,请酌情使用

set1 = {'zhangsan', 'lisi', 'wangwu'}
set1.pop()
print(set1)

  
 
  • 1
  • 2
  • 3

输出:

{'lisi', 'wangwu'}

  
 
  • 1

多次运行以上代码,会发现被删除的元素不同

随机删除并「返回被删除的元素」

set1 = {'zhangsan', 'lisi', 'wangwu'}
print(set1.pop())  # pop()函数会返回被删除的元素

  
 
  • 1
  • 2

输出:

zhangsan

  
 
  • 1

union()

语法

set.union( set1, set2, ...)

  
 
  • 1

参数

  • set1:需要合并的集合
  • 返回值:合并后的新集合

「多个集合」合并为一个新的集合(去重,并且不改变源集合)

set1 = {'zhangsan', 'lisi'}
set2 = {1, 2, 3}
set3 = {1, 'zhangsan', (4, 5, 6)}
new_set = set1.union(set2, set3)
print(new_set)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

输出:

{1, 2, 3, (4, 5, 6), 'lisi', 'zhangsan'}

  
 
  • 1

difference()

语法

set.difference( set1, set2, ... )

  
 
  • 1

参数

  • set1:需要检查的集合
  • 返回值:不同元素的集合

检查集合1中存在,且其他集合中「都不存在」的元素,返回一个包含这些元素的新集合
注意:不改变源集合

set1 = {1, 2, 3, 4, 5}
set2 = {1, 2, 3}
set3 = {4,}
new_set = set1.difference(set2, set3)
print('set1:', set1)
print('set2:', set2)
print('set3:', set3)
print('新集合:', new_set)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

输出:

set1: {1, 2, 3, 4, 5}
set2: {1, 2, 3}
set3: {4}
新集合: {5}

  
 
  • 1
  • 2
  • 3
  • 4

difference_update()

语法

set.difference_update( set1, set2, ... )

  
 
  • 1

参数

  • set1:需要检查的集合

删除与其他集合「相同」的元素,只保留「不同」的元素
注意:会改变源集合(set1)

set1 = {1, 2, 3, 4, 5}
set2 = {1, 2, 3}
set3 = {4,}
set1.difference_update(set2, set3)
print('set1:', set1)
print('set2:', set2)
print('set3:', set3)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

输出:

set1: {5}
set2: {1, 2, 3}
set3: {4}

  
 
  • 1
  • 2
  • 3

intersection()

语法

set.intersection( set1, set2, ...)

  
 
  • 1

参数

  • set1:需要检查的集合
  • 返回值:一个新集合

「相同」

注意:不改变源集合(set1)

set1 = {1, 2, 3, 4, 5}
set2 = {1, 2, 3, 4}
set3 = {1, 2, 3}
new_set = set1.intersection(set2, set3)
print('set1:', set1)
print('set2:', set2)
print('set3:', set3)
print(new_set)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

输出:

set1: {1, 2, 3, 4, 5}
set2: {1, 2, 3, 4}
set3: {1, 2, 3}
{1, 2, 3}

  
 
  • 1
  • 2
  • 3
  • 4

intersection_update()

语法

set.intersection_update( set1, set2, ...)

  
 
  • 1

参数

  • set1:需要检查的集合

删除与其他集合「不同」的元素,只保留「相同」的元素
注意:会改变源集合(set1)

set1 = {1, 2, 3, 4, 5}
set2 = {1, 2, 3, 4}
set3 = {1, 2, 3}
set1.intersection_update(set2, set3)
print('set1:', set1)
print('set2:', set2)
print('set3:', set3)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

输出:

set1: {1, 2, 3}
set2: {1, 2, 3, 4}
set3: {1, 2, 3}

  
 
  • 1
  • 2
  • 3

isdisjoint()

语法

set.isdisjoint( set1 )

  
 
  • 1

参数

  • set1:需要检查的元素
  • 返回值:True 或 False

「检查」两个集合中是否存在「相同」的元素,有则返回False,没有则返回True

set1 = {1, 2, 3, 4}
set2 = {1, 2, 3}
set3 = {5,}
print('有相同元素:', set1.isdisjoint(set2))
print('没有相同元素:', set1.isdisjoint(set3))

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

输出:

有相同元素: False
没有相同元素: True

  
 
  • 1
  • 2

issubset()

语法

set.issubset( set1 )

  
 
  • 1

参数

  • set1:需要检查的集合
  • 返回值:True 或 False

判断集合是否被另一个集合「包含」,被包含则返回True,未被包含则返回False

set1 = {1, 2, 3, 4}
set2 = {1, 2, 3, 4, 5}
set3 = {5,}
print('被包含:', set1.issubset(set2))
print('不被包含:', set1.issubset(set3))

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

输出:

被包含: True
不被包含: False

  
 
  • 1
  • 2

issuperset()

语法

set.issuperset( set1 )

  
 
  • 1

参数

  • set1:需要检查的集合
  • 返回值:True 或 False

「包含」
set1 = {1, 2, 3, 4, 5}
set2 = {1, 2, 3, 4}
set3 = {6,}
print('包含:', set1.issuperset(set2))
print('不包含:', set1.issuperset(set3))

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

输出:

包含: True
不包含: False

  
 
  • 1
  • 2

文章来源: blog.csdn.net,作者:士别三日wyx,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wangyuxiang946/article/details/122245133

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。