如何在Python中不修改原列表的情况下向列表追加元素?
Python列表的原地与非原地操作
原地修改列表的方式
- 原地扩展列表:
mylist = [1,2] mylist.extend([3]) # 或者等价写法 mylist += [3] - 原地追加单个元素:
mylist.append(3)
生成新列表的非原地方式
- 非原地扩展列表:
newList = mylist + [3] mylist = mylist + [3] # 此时mylist被重新赋值为新创建的列表 - 注意:
append是原地操作,没有返回值,直接赋值会得到None:newList = mylist.append(3) # newList 的值为 None
满足需求的简洁非原地追加方法
要实现不修改原列表、无需将单个元素包装成列表、也不用copy模块的追加操作,最简洁的写法是使用列表解包语法:
newList = [*mylist, 3]
这个写法会把原列表的所有元素解包到新列表中,再追加单个元素3,直接生成全新的列表,完全不会改动原列表。
内容的提问来源于stack exchange,提问作者Andrés Estrella
相关产品推荐
相关产品推荐

