【发布时间】:2020-12-21 11:24:03
【问题描述】:
给定一个达到最大达到阶段的运行列表,我想将最大值转移到一个嵌套字典,其中包含 每个阶段的 尝试次数 (t)。
这意味着运行 3、4 和 7 应该产生:
{0: {'t': 3}, 1: {'t': 3}, 2: {'t': 3}, 3: {'t': 2}, 4: {'t': 1}, 5: {'t': 1}, 6: {'t': 1}}
第 0、1、2 关各玩了 3 次,第 3 关玩了 2 次,第 4、5、6 关只玩了一次。
-
我得到以下结果:
{0: {'t': 14}, 1: {'t': 14}, 2: {'t': 14}, 3: {'t': 14}, 4: {'t': 14}, 5: {'t': 14}, 6: {'t': 14}}
源代码
p = {}
p = dict.fromkeys(range(7), {})
runs = (3, 4, 7)
for r in runs:
for l in range(r):
if "t" in p[l]:
p[l]["t"] += 1
else:
p[l]["t"] = 1
为什么所有字典的键值都一样?
【问题讨论】:
-
dict.fromkeys 的文档说它们共享相同的值。因此,您传入的空字典
{}在它们之间共享。
标签: python dictionary count increment fromkeys