You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中for循环内调用集合union方法求并集不生效如何解决?

错误原因

Python的set.union()方法属于非原地操作,它不会修改调用方法的原集合,只会生成并返回一个包含两个集合合并结果的新集合。你现有代码没有接收这个返回的合并结果,因此初始定义的my_set始终没有被更新,一直保持空集合的初始状态。

修复后的代码
my_set = set()
# 可替换为你的目标集合列表 [{'1'}, {'2','8'}, {'3','9', '1'}]
for i in [{'1'}, {'2','8'}, {'3','9'}]:
    print(i)
    # 接收union返回的新集合,赋值给my_set保存合并结果
    my_set = my_set.union(i)
    print(my_set)
print(my_set)
运行输出
{'1'}
{'1'}
{'8', '2'}
{'1', '8', '2'}
{'9', '3'}
{'1', '2', '3', '8', '9'}
{'1', '2', '3', '8', '9'}
补充说明
  • 遍历得到的i本身就是集合类型,不需要额外用set(i)做转换,该步属于冗余操作,删除不影响逻辑
  • 本次修改仅调整了循环内的赋值逻辑,完全保留了循环+union的实现方式,未使用其他捷径方案。

内容的提问来源于stack exchange,提问作者Saeed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:24:01