Python集合的创建与常用函数使用指南

江岸
江岸
发布时间:2026-10-12| 3人浏览过
原创

本文详细解析Python集合(Set)的两种创建方式及其无序、互异的核心特性。通过完整代码示例,逐步演示add、pop、remove与discard等增删函数的用法差异,涵盖成员判断、循环遍历与长度统计操作,并厘清集合与字典、元组、列表嵌套时的转换规则,助您高效处理数据去重与集合运算。

集合的创建方式与基础特性

Python中的集合(Set)主要由内置函数set()或花括号{}创建。集合具有以下三个显著特征:无序性、互异性(自动去重)以及确定性。创建时可传入可迭代对象,系统底层会基于哈希算法自动过滤重复项。

# 使用内置函数set()进行转化,自动去重并生成无序集合
numbers = set(range(0, 7))
print(numbers)
print(type(numbers))

# 使用花括号初始化,重复元素会被自动剔除
fruit = {'apple', 'orange', 'banana', 'apple'}
print(fruit)

验证无序性与索引限制

由于集合内部不按插入顺序排列,元素没有固定的索引位置,因此不支持像列表那样的下标访问。尝试通过索引获取元素将直接触发TypeError异常。

# 尝试使用下标访问集合元素会直接报错
fruit_set = set({'apple', 9, 'axn', 'dbu', 12})
print(fruit_set[2])
Python执行fruit_set[2]触发的TypeError异常提示
集合不支持索引访问,运行上述代码将抛出类型错误

常用增删函数对比

集合提供了多种修改元素的方法,开发者需根据业务容错需求选择合适函数:
add()用于向集合追加单个新元素。
pop()随机移除并返回一个元素(因无序性,被删元素不可预测)。
remove()指定删除目标元素,若元素不存在则抛出KeyError。
discard()同样用于指定删除,但缺失元素时静默跳过不中断程序。

# 添加元素
my_set = {'apple', 9, 'axn', 'dbu', 12}
my_set.add('new_item')

# 指定删除示例
my_set.remove('axn')
print(my_set)
使用remove删除不存在元素时报错的Traceback信息
remove()在目标元素不存在时会中断程序并输出详细错误栈

成员判断、遍历与长度统计

判断元素归属直接使用in和not in运算符,底层哈希查找效率极高。集合可通过for循环直接迭代,配合len()可快速统计当前有效元素数量。

# 成员存在性检测
if 'apple' in my_set:
    print('包含目标元素')
if 'banana' not in my_set:
    print('未找到目标元素')

# 遍历与计数
for item in my_set:
    print(item, end=' ')
print(f'\n集合当前长度: {len(my_set)}')

集合与其他数据结构的嵌套转换

在处理多维数据时,常需将其他类型转化为集合以实现去重。转换时需留意以下规则:

  • 字典转集合:调用set(dict_object)时,Python仅提取字典的key,所有value均被忽略。
  • 元组与列表转集合:两者均为标准可迭代对象,传入set()后会完全展开并去重,最终生成新的无序集合实例。
# 字典转集合(仅保留键名)
info_dict = {'name': 'jason', 'age': 19, 'city': 'Beijing'}
d_to_s = set(info_dict)
print(d_to_s) # 输出: {'name', 'age', 'city'}

# 列表与元组转集合
l_to_s = set(['name', 'jason', 19])
t_to_s = set(('x', 10, 'y'))
print(l_to_s, t_to_s)

以上就是Python集合的创建与常用函数使用的详细内容,更多关于Python数据结构与集合运算的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。