Python集合常用函数使用详解(内附详细案例)
「作者主页」:士别三日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
- 点赞
- 收藏
- 关注作者
评论(0)