Python 集合 add()函数使用详解,集合添加元素

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:小白零基础《Python入门到精通》

add函数使用详解

add() 函数可以给集合「添加」元素。

语法

python 复制代码
set.add( element )

参数

  • element :(必选)需要添加的元素

返回值

  • None,没有返回值,值修改原集合。

实例:向集合中添加元素

python 复制代码
set1 = {1, 2, 3}
set1.add(4)
print(set1)

输出:

bash 复制代码
{1, 2, 3, 4}

1、元素的顺序

add() 并不是将元素插入到集合的「末尾」。因为集合「不保证」元素的「顺序」,所以我们每次打印,元素的位置都会发生变化。

python 复制代码
set1 = {1, 2, 3}
set1.add('ZhangSan')
set1.add('LiSi')
set1.add('WangWu')
set1.add('QianLiu')
set1.add('SunQi')

print(set1)

输出:

bash 复制代码
{1, 2, 3, 'ZhangSan', 'QianLiu', 'WangWu', 'LiSi', 'SunQi'}

从输出结果可以看到,元素并非按照添加的顺序展示;尝试多次打印,会发现每次的顺序都不一样。

需要注意的是,使用「循环」的方式打印,元素的顺序就不会再发生变化

python 复制代码
set1 = {1, 2, 3}
set1.add('ZhangSan')
set1.add('LiSi')
set1.add('WangWu')
set1.add('QianLiu')
set1.add('SunQi')

i = 0
while i < 10:
    print(set1)
    i += 1

输出:

bash 复制代码
{'WangWu', 1, 2, 3, 'SunQi', 'ZhangSan', 'LiSi', 'QianLiu'}
{'WangWu', 1, 2, 3, 'SunQi', 'ZhangSan', 'LiSi', 'QianLiu'}
{'WangWu', 1, 2, 3, 'SunQi', 'ZhangSan', 'LiSi', 'QianLiu'}
{'WangWu', 1, 2, 3, 'SunQi', 'ZhangSan', 'LiSi', 'QianLiu'}
{'WangWu', 1, 2, 3, 'SunQi', 'ZhangSan', 'LiSi', 'QianLiu'}
{'WangWu', 1, 2, 3, 'SunQi', 'ZhangSan', 'LiSi', 'QianLiu'}
{'WangWu', 1, 2, 3, 'SunQi', 'ZhangSan', 'LiSi', 'QianLiu'}
{'WangWu', 1, 2, 3, 'SunQi', 'ZhangSan', 'LiSi', 'QianLiu'}
{'WangWu', 1, 2, 3, 'SunQi', 'ZhangSan', 'LiSi', 'QianLiu'}
{'WangWu', 1, 2, 3, 'SunQi', 'ZhangSan', 'LiSi', 'QianLiu'}

2、可以添加的元素类型

add() 添加的元素,可以是「字符串」、「元组」、「bytes类型」,不能是列表、集合、字典类型。

python 复制代码
set1 = {1, 2, 3}

set1.add('str')
set1.add((4, 5, 6))
set1.add(b'123')
print(set1)

输出:

bash 复制代码
{1, 2, 3, (4, 5, 6), 'str', b'123'}

添加不允许的元素类型时,会报错 TypeError: unhashable type: 'list'

3、添加重复的元素

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

python 复制代码
set1 = {1, 2, 3}
set1.add(3)
print(set1)

输出:

bash 复制代码
{1, 2, 3}

4、一次只能添加一个元素

add() 只接收一个参数,这意味着每次只能添加「一个元素」,否则会报错 TypeError: add() takes exactly one argument

python 复制代码
set1.add(1, 2)
相关推荐
艾莉丝努力练剑25 分钟前
【AI大模型接入SDK】Provider分析与实现
c++·人工智能·学习·面试·大模型·llm
磁场转动100万匹26 分钟前
PyTorch 手写数字识别实战:从数据加载到模型训练(零基础详解版)
人工智能·pytorch·python
TaoMetrix6 小时前
TaoMetrix:AI 硬件创业公司如何做好原型制造
人工智能·制造
青 春 记 忆7 小时前
零基础入门python30:Flask个人账本从空目录运行与阶段验收
python·flask·后端开发
智圣新创017 小时前
面向多级组织协同场景 高校第二课堂一站式管理中枢落地全场景实操答疑
大数据·人工智能
cd_949217217 小时前
AI纹理和Substance Painter手绘纹理哪个更适合游戏资产制作?
人工智能·游戏·substance painter
sali-tec7 小时前
C# 基于OpenCv的视觉工作流-章106-差值追踪
图像处理·人工智能·opencv·算法·计算机视觉
Shockang7 小时前
用 AI 打造高品质 Web 应用
人工智能
l1258657 小时前
# LangGraph Memory机制深度解析:短期记忆与长期记忆的工程实践
前端·人工智能·python·langchain·bootstrap
手写码匠7 小时前
Dify 多 Agent 工具权限与安全沙箱实战:让智能体“有能力,但不越权“
人工智能·深度学习·算法·aigc