Python:将列表元素设置为dict值

问题描述 投票:-3回答:2

简短的问题,可能简短的回答,但我不明白^^

d = {'a' : 0, 'b' : 0, 'c' : 0, 'd' : 0}
l = [1, 2, 3, 4]

我想将列表值设置为字典,以便

d = {'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4}

当然

d['a'], d['b'], d['c'], d['d'] = l

会成功,但那不可能是正确的方法。如果我有50个值怎么办...拉开dl的循环也会起作用。

但有像d.values = l这样的短片,不是吗?

谢谢你的帮助! :)

编辑:我正在使用Python 3.7,所以dict是通过插入来排序的。

python list dictionary python-3.7
2个回答
1
投票

不,没有捷径。您需要将dict.update与对列表一起使用。

d.update(zip(d, l))

1
投票

在Python 3.7+中,dicts按照项目的顺序排序。因此以下是正确的。

d = {'a' : 0, 'b' : 0, 'c' : 0, 'd' : 0}
for i, k in enumerate(d.keys(), 1):
    d[k] = i

或者您可以使用以下内容:

d['a'], d['b'], d['c'], d['d'] = range(1,5) #or 1, 2, 3, 4

编辑

使用词典理解的一个班轮:

d = {key: val for val, key in enumerate(d.keys(), 1)}
© www.soinside.com 2019 - 2024. All rights reserved.