当前位置:首页>python>Python集合set添加元素全教程|零基础易懂,附实战代码

Python集合set添加元素全教程|零基础易懂,附实战代码

  • 2026-10-11 06:32:02
Python集合set添加元素全教程|零基础易懂,附实战代码

前言

集合(set)是Python中无序、不可重复的数据容器,日常去重、交集差集运算高频使用。很多新手只会add(),其实集合一共有3种添加元素的方法,适用场景完全不同:

  1. set.add():添加单个元素
  2. set.update():批量添加多个可迭代对象(列表、字符串、元组、集合等)
  3. set |= 运算符:合并集合,等效update

本文分方法讲解、代码示例、易错坑总结,代码可直接复制运行。

一、add():添加单个元素(最常用)

语法

集合变量.add(元素)

特性

  1. 一次只能传1个元素,不能传列表/多个值;
  2. 元素已存在时,不会报错,自动忽略;
  3. 不能添加可变类型(列表、字典),会直接报错;
  4. 无返回值,原地修改集合。

示例1:基础添加数字、字符串

# 创建空集合
s = set()
# 添加单个数字
s.add(10)
# 添加字符串
s.add("python")
# 添加元组(元组不可变,允许放入集合)
s.add((1,2,3))

print(s)
# 输出:{(1, 2, 3), 10, 'python'}

示例2:添加重复元素自动去重

s = {1,2,3}
s.add(2)  # 2已存在,无任何变化
s.add(4)

print(s)
# 输出:{1, 2, 3, 4}

易错坑演示:add不能传多个元素/列表

s = {1,2}
# 错误写法1:一次性传多个值
# s.add(3,4)  # TypeError: add() takes exactly one argument (2 given)

# 错误写法2:传入列表(可变类型)
# s.add([5,6]) # TypeError: unhashable type: 'list'

二、update():批量添加一组元素(推荐批量场景)

语法

集合变量.update(可迭代对象)
# 支持同时传入多个可迭代对象,逗号分隔
集合变量.update(列表,字符串,元组,集合)

特性

  1. 参数必须是可迭代对象:list、tuple、str、set、range;
  2. 会把可迭代对象拆分成单个元素逐个加入;
  3. 重复元素自动去重;
  4. 原地修改,无返回值。

示例1:传入列表批量添加

s = {1,2}
# 传入列表,批量新增
s.update([3,4,5,2]) # 2重复自动过滤
print(s)
# 输出:{1, 2, 3, 4, 5}

示例2:传入字符串(拆分单个字符)

s = set()
s.update("hello")
# 字符串被拆分为 h e l l o,自动去重l
print(s)
# 输出:{'h', 'o', 'l', 'e'}

示例3:同时传入多个可迭代对象

s = {10}
# 同时传入列表、元组、集合
s.update([20,30], (30,40), {40,50})
print(s)
# 输出:{10, 20, 30, 40, 50}

示例4:传入range快速生成数字集合

s = set()
s.update(range(1,6)) # 1,2,3,4,5
print(s)
# 输出:{1, 2, 3, 4, 5}

区分 add() 和 update() 核心对比

s1 = {1}
s1.add((2,3))  # add把元组整体当成1个元素
print(s1) # {1, (2, 3)}

s2 = {1}
s2.update((2,3)) # update拆开元组,分别添加2、3
print(s2) # {1, 2, 3}

核心区别:add接收单个哈希元素,update接收可迭代序列并拆解。

三、|= 运算符:集合合并添加

语法

set1 |= set2
# 等效 set1.update(set2)

特性

  1. 只能和集合做运算,不能直接传列表字符串;
  2. 将右边集合所有元素合并到左边,自动去重;
  3. 原地修改原集合。

示例

a = {1,2,3}
b = {3,4,5}
a |= b
print(a)
# 输出:{1, 2, 3, 4, 5}

如果需要合并列表,要先转集合:

a = {1,2}
lst = [2,3,4]
a |= set(lst)
print(a) # {1,2,3,4}

四、三种添加方法场景总结

方法
功能
传参要求
适用场景
add()
添加单个元素
不可变哈希元素(数字、字符串、元组)
一次加1个数据
update()
批量添加一组元素
列表/元组/字符串/集合/range
批量导入数据、拆分字符
|=
集合合并
只能集合
两个集合快速合并

五、高频实操小案例(实用代码片段)

案例1:列表去重,用update快速写入集合

# 原始重复列表
data = [1,1,2,2,3,4,4,5]
res_set = set()
res_set.update(data)
print(res_set) # {1,2,3,4,5}

案例2:循环逐个add添加元素

num_set = set()
for i in range(5):
    num_set.add(i)
print(num_set) # {0, 1, 2, 3, 4}

案例3:收集文本所有不重复字符

text = "python public account"
char_set = set()
char_set.update(text)
print(char_set)
# 输出所有不重复字符:{'p','y','t','h','o','n',' ','u','b','l','i','c','a','d'}

六、常见报错避坑总结

  1. add传多个参数报错:add只支持1个参数,批量用update;
  2. add传入列表报错:列表是可变类型,无法哈希,不能放入集合;
  3. update直接传数字报错:数字不是可迭代对象,update(5)会报错;
  4. 集合无序:打印输出顺序不固定,不要依赖索引取值。

结尾

集合添加元素是Python基础高频知识点,分清add()和update()就能搞定90%的场景。后续会更新集合删除、交集、差集运算教程,关注不丢失~

最新文章

随机文章