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

Python中是否存在不修改原List、返回新对象的方法?

Python中不修改原List、返回新对象的方法

当然有,Python里有多种方式可以实现不修改原列表、返回新列表对象的操作,对应你提到的JavaScript concat 方法,这里列举几种常用的:

  • 列表拼接运算符(+):这是最接近JS concat 的用法,直接将原列表与新元素/列表拼接,返回全新列表,原列表完全不受影响。

    original_list = [1, 2, 3]
    new_list = original_list + [4]  # 返回 [1, 2, 3, 4]
    # 原列表仍为 [1, 2, 3]
    
  • 解包语法(*):可以更简洁地扩展原列表并生成新列表,同样不修改原列表:

    original_list = [1, 2, 3]
    new_list = [*original_list, 4, 5]  # 返回 [1, 2, 3, 4, 5]
    
  • 列表推导式:如果需要对原列表元素做处理后生成新列表,或者过滤元素,列表推导式是绝佳选择,原列表保持不变:

    original_list = [1, 2, 3]
    # 生成包含原元素并添加新元素的新列表
    new_list = [x for x in original_list] + [4]
    # 或者对元素做转换后生成新列表
    doubled_list = [x * 2 for x in original_list]  # 返回 [2, 4, 6],原列表不变
    
  • list.copy() 结合拼接:先复制原列表得到一个新对象,再通过拼接添加元素(注意不要用append,因为会修改复制后的列表):

    original_list = [1, 2, 3]
    new_list = original_list.copy() + [4]
    

需要注意的是,Python中的list.append()、list.extend()、list.insert()这些方法都是直接修改原列表,不会返回新对象,和你要的场景相反。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:05:33