如何复制列表内的字典(dictionary)并将其追加回原列表
Python 列表嵌套字典复制并追加至原列表实现方案
你的需求是复制列表内的字典再追加回原列表,因为示例中的字典存在嵌套结构,要注意区分浅拷贝和深拷贝的使用场景,避免后续修改出现联动异常。
单元素列表实现(匹配你给出的示例)
import copy # 你的初始列表 foci = [ { "label": "Monday 1:00 pm", "value": { "input": { "text": "Monday 1:00 pm" } } } ] # 深拷贝字典,保证嵌套结构完全独立,修改新字典不会影响原字典 copied_item = copy.deepcopy(foci[0]) # 可选:修改复制后的字典内容 # copied_item["label"] = "Tuesday 3:00 pm" # copied_item["value"]["input"]["text"] = "Tuesday 3:00 pm" # 追加到原列表 foci.append(copied_item)
拷贝方式说明
- 浅拷贝(
foci[0].copy()):仅复制字典顶层键值,嵌套的value字典仍和原字典共享内存,修改嵌套内容时会同时改动原字典,仅适合不需要修改嵌套内容的场景,性能开销更低。 - 深拷贝(
copy.deepcopy()):会递归复制所有层级的字典结构,新老字典完全独立,是通用场景的首选方案。
多元素列表全量复制追加方案
如果你的列表包含多个需要复制的字典,可以用遍历实现全量复制追加:
import copy # 遍历原列表的副本,避免追加时重复遍历新增元素 for item in foci.copy(): new_item = copy.deepcopy(item) # 按需修改new_item内容 foci.append(new_item)
内容的提问来源于stack exchange,提问作者Aymal Khan
相关产品推荐
相关产品推荐

