gpt4 book ai didi

python - 1 :n values in dictionary python

转载 作者:太空宇宙 更新时间:2023-11-04 07:57:48 25 4
gpt4 key购买 nike

我在完成一个简单的任务时遇到了一些麻烦。

我有 2 个列表(长度相同),如下所示:

f1 = ['Shallow', 'Shallow', 'Shallow', 'Shallow', 'Shallow', 'Deep', 'Deep', 'Deep', 'Shallow', 'Shallow', 'Shallow', 'Shallow', 'Shallow', 'Shallow', 'Shallow', 'Deep', 'Deep']
f2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]

我想构建的是一个字典,其中的键取自 f1,值应该是相应的数字列表(f2 包含一些唯一的 id)键。

类似于:

d = {}
d['Shallow'] = [0, 1, 2, 3, 4, 8, 9, 10, 11, 12, 13, 14]
d['Deep'] = [5, 6, 7, 15, 16]

我尝试使用 zip 进行循环,但我确实遗漏了一些东西,并且只附加了最后一项:

d = {}

for i, j in zip(f1, f2):
d[i] = []
d[i].append(j)

谢谢你的建议

最佳答案

问题是 d[i] = [] 总是会覆盖 'Shallow''Deep' 的条目新的空列表。你想要的是只在它不存在时才这样做:

d = {}

for i, j in zip(f1, f2):
if i not in d:
d[i] = []
d[i].append(j)

或者,使用 defaultdict 自动处理:

from collections import defaultdict

d = defaultdict(list)

for i, j in zip(f1, f2):
d[i].append(j)

关于python - 1 :n values in dictionary python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45688953/

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