gpt4 book ai didi

python - 如何深度复制复制字典列表?

转载 作者:太空宇宙 更新时间:2023-11-04 11:13:09 24 4
gpt4 key购买 nike

我有一个字典列表:

my_list = [
{
'key1': 'value1',
},
{
'key2': 'value2',
},
]

我想像这样乘以列表:

my_new_list = [
{
'key1': 'value1',
},
{
'key2': 'value2',
},
{
'key1': 'value1',
},
{
'key2': 'value2',
},
]

我尝试了 my_list * 2 方法,但它会创建浅拷贝,这意味着如果我修改一个字典,它最终会修改列表中的许多其他字典。我想我正在寻找深拷贝。

我也试过这个:

my_new_list = [my_list[i % len(my_list)] for i in range(4)]

但同样的问题。

这种方法有效,但对我来说感觉不是很 pythonic,这就是为什么我正在寻找更好的答案。

from copy import deepcopy

my_new_list = [deepcopy(my_list[i % len(my_list)]) for i in range(4)]

我如何创建这个深拷贝多列表?

最佳答案

您可以将乘法方法与 dict.copy() 一起使用,假设您的字典与示例中的字典一样浅。

l = [{'k1': 'v1'}, {'k2': 'v2'}]

result = [d.copy() for d in l * 2]
result[0]['k1'] = 'changed'
print(result)
# [{'k1': 'changed'}, {'k2': 'v2'}, {'k1': 'v1'}, {'k2': 'v2'}]

关于python - 如何深度复制复制字典列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57696941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com