简短的问题,可能简短的答案,但我不明白^^
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个值怎么办...压缩d
和l
的循环也可以工作。
但是有些类似d.values = l
的东西,不是吗?
感谢您的帮助! :)
编辑:我使用的是Python 3.7,因此字典通过插入进行排序。
答案 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)}