gpt4 book ai didi

python - 如何使用 dict.fromkeys 为每个键创建唯一值?

转载 作者:太空狗 更新时间:2023-10-29 17:55:43 25 4
gpt4 key购买 nike

首先,我是 Python 的新手,所以如果我忽略了什么,我深表歉意,但我想使用 dict.fromkeys(或类似的东西)来创建列表字典,其中的键在另一个列表中提供。我正在执行一些计时测试,我希望键成为输入变量,列表包含运行时间:

def benchmark(input):
...
return time_taken

runs = 10
inputs = (1, 2, 3, 5, 8, 13, 21, 34, 55)
results = dict.fromkeys(inputs, [])

for run in range(0, runs):
for i in inputs:
results[i].append(benchmark(i))

我遇到的问题是字典中的所有键似乎都共享同一个列表,每次运行都只是附加到它。有什么方法可以使用 fromkeys 为每个键生成一个唯一的空列表吗?如果不是,是否有另一种方法可以在不手动生成结果字典的情况下执行此操作?

最佳答案

问题是在

results = dict.fromkeys(inputs, [])

[] 只计算一次,就在那里。

我会这样重写这段代码:

runs = 10
inputs = (1, 2, 3, 5, 8, 13, 21, 34, 55)
results = {}

for run in range(runs):
for i in inputs:
results.setdefault(i,[]).append(benchmark(i))

其他选项是:

runs = 10
inputs = (1, 2, 3, 5, 8, 13, 21, 34, 55)
results = dict([(i,[]) for i in inputs])

for run in range(runs):
for i in inputs:
results[i].append(benchmark(i))

关于python - 如何使用 dict.fromkeys 为每个键创建唯一值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/654646/

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