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

Python中如何不修改原集合实现add/update并返回集合传参?

解决Python集合修改后返回新集合的单行写法问题

当然有几种单行写法能满足你的需求,而且完全不会修改原集合:

  • 用集合的并集操作符|,这是最简洁直观的方式:

    • 添加单个元素:foo({an_element} | an_existing_set)
    • 添加另一个集合或可迭代对象:foo(another_iterable_set | an_existing_set)
      并集操作会直接返回一个全新的集合,原集合不会有任何改动,完全符合你的要求。
  • 用集合构造器加解包语法:

    • 添加单个元素:foo(set([an_element, *an_existing_set]))
      把原集合的元素解包后和新元素一起传入集合构造器,直接生成新集合。这种写法在日常场景下足够好用,只是对超大集合的效率略低于并集操作。
  • 自定义极简辅助函数(适合多次复用场景):
    先定义一次辅助函数:

    def extend_set(s, *items):
        new_s = s.copy()
        new_s.update(items)
        return new_s
    

    之后就能单行调用:foo(extend_set(an_existing_set, an_element)),如果需要添加多个元素或另一个集合,直接传入对应参数即可,比如extend_set(an_existing_set, elem1, elem2, another_set)。

这些方法生成的都是全新集合,不会修改原集合,刚好可以直接传入递归函数,省去临时变量的繁琐写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:31:25