Python集合底层用哈希表实现,不保证顺序;add()加单个可哈希元素,update()加任意可迭代对象并逐个add;运算符要求两边均为set,方法可接受任意可迭代对象;difference()左结合,非数学意义的多集差;元素须哈希稳定。
Python 集合不是“去重列表”,它底层用哈希表实现,不保证插入顺序(CPython 3.7+ 因字典底层优化而偶然有序,但这是实现细节,不可依赖)。
add() 和 update() 为什么行为不同add() 只接受单个可哈希对象,update() 接受任意可迭代对象(包括另一个 set、list、str、tuple),并逐个调用 add()。误把列表当元素传给 add() 会直接报错:TypeError: unhashable type: 'list'。
实操建议:
my_set.add(x)
my_set.update(iterable),别写成 my_set.add([1,2,3])
update() 对字符串会拆成字符: s = {1}; s.update("ab"); print(s) → {1, 'a', 'b'}
&,何时用 intersection()
运算符(&、|、-、^)要求**两边都是 set 实例**;而对应方法(intersection()、union() 等)可以接受任意可迭代对象(如 list、tuple、dict_keys),内部自动转为集合处理。
常见错误现象:用 {1,2} & [2,3] 报 TypeError: unsupported operand type(s) for &: 'set' and 'list'。
实操建议:
set,且追求简洁:用 &、|
list 或生成器,不想手动 set(...):用 .intersection(other_iterable)
set.difference() 的顺序敏感性与链式陷阱a.difference(b, c) 等价于 a - b - c,不是 a - (b | c) —— 它是**左结合**:先算 a - b,再从结果里减 c。这点和数学中的集合差不同(数学中 A \ B \ C 通常指 A \ (B ∪ C)),容易误解。
示例:
s = {1, 2, 3, 4}
t = {2, 3}
u = {3, 4}
print(s.difference(t, u)) # 输出 {1},因为:{1,2,3,4} - {2,3} →
{1,4},再 - {3,4} → {1}
print(s - t - u) # 同样输出 {1}
print(s - (t | u)) # 输出 {1, 2},这才是“排除 t 和 u 所有元素”实操建议:
s - (t | u) 或 s.difference(t | u)
difference() 多参数时,心里默念“逐个减”真正容易被忽略的是哈希稳定性:集合元素必须可哈希,且哈希值在其生命周期内不能改变。把自定义类实例放进集合后,如果修改了影响 hash 或 eq 的属性,该集合行为将不可预测——既可能查不到,也可能引发 KeyError 而不报错。
相关文章:
想学网站制作怎么学,建立一个网站要花费多少?
网站制作模板下载什么软件,ppt模板免费下载网站?
如何在万网ECS上快速搭建专属网站?
html制作网站的步骤有哪些,iapp如何添加网页?
宁波自助建站系统如何快速打造专业企业网站?
建站之星安装步骤有哪些常见问题?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
股票网站制作软件,网上股票怎么开户?
如何在服务器上三步完成建站并提升流量?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
建站之星×万网:智能建站系统+自助建站平台一键生成
如何挑选优质建站一级代理提升网站排名?
制作证书网站有哪些,全国城建培训中心证书查询官网?
建站之星如何实现PC+手机+微信网站五合一建站?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
定制建站策划方案_专业建站与网站建设方案一站式指南
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
C++如何编写函数模板?(泛型编程入门)
黑客如何利用漏洞与弱口令入侵网站服务器?
如何在万网自助建站平台快速创建网站?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
建站之星logo尺寸如何设置最合适?
个人网站制作流程图片大全,个人网站如何注销?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
已有域名和空间,如何快速搭建网站?
如何在阿里云服务器自主搭建网站?
北京专业网站制作设计师招聘,北京白云观官方网站?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
网站制作壁纸教程视频,电脑壁纸网站?
公司网站设计制作厂家,怎么创建自己的一个网站?
制作网站公司那家好,网络公司是做什么的?
网站制作企业,网站的banner和导航栏是指什么?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
模具网站制作流程,如何找模具客户?
PHP正则匹配日期和时间(时间戳转换)的实例代码
香港服务器建站指南:免备案优势与SEO优化技巧全解析
如何配置IIS站点权限与局域网访问?
实例解析Array和String方法
已有域名如何快速搭建专属网站?
Bpmn 2.0的XML文件怎么画流程图
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
如何通过IIS搭建网站并配置访问权限?
建站之星2.7模板快速切换与批量管理功能操作指南
网页设计与网站制作内容,怎样注册网站?
如何通过建站之星自助学习解决操作问题?
如何规划企业建站流程的关键步骤?
学校建站服务器如何选型才能满足性能需求?
如何在云主机上快速搭建多站点网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。