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

时间:2019-02-25 14:46:42

标签: python list dictionary python-3.7

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

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,因此字典通过插入进行排序。

2 个答案:

答案 0 :(得分:1)

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

d.update(zip(d, l))

答案 1 :(得分:1)

在Python 3.7+中,字典按插入项的顺序排序。因此,以下内容将是正确的。

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

修改

使用dict理解为您提供的衬板:

d = {key: val for val, key in enumerate(d.keys(), 1)}