gpt4 book ai didi

python - 机器字典理解和现有字典的深度复制哪个更容易?

转载 作者:行者123 更新时间:2023-12-03 02:36:26 25 4
gpt4 key购买 nike

初始化一个函数我需要两个相同的字典,其中一个我只能用 dict 创建。理解。但是当谈到第二个时,我很好奇机器是否更容易(更少的时间和/或更少的操作)将其作为第一个的深度复制,或者更确切地说重复相同的理解。

我通常将两者都设置为推导式,因为我的字典通常很小,但是当没有空值和/或更多键时,这可能很重要。

# both as comprehensions (implying I already have keys)
dict1 = {key: [] for key in keys}
dict2 = {key: [] for key in keys}

# second one as a deepcopy of the first
dict1 = {key: [] for key in keys}
dict2 = copy.deepcopy(dict1)

嗯,我预计我的情况不会有太大差异,但我只是好奇它一般是如何工作的。

最佳答案

deepcopy 比第一个示例执行了更多的工作/检查,一个简单的计时练习证实了这一点:

In [1]: import copy 
...:
...: dict1 = {key: [] for key in 'abcdefgh'}
...:
...: %timeit dict2 = {key: [] for key in 'abcdefgh'}
...:
...: %timeit dict2 = copy.deepcopy(dict1)
...:
816 ns ± 5.09 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
21 µs ± 28.6 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)

如果您提前知道您的数据结构(即嵌套级别和类型等),那么您可以通过避免深度复制来获得可观的性能提升。不过,deepcopy 当然更灵活。

关于python - 机器字典理解和现有字典的深度复制哪个更容易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57053648/

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