从列表中填充字典值

9

我正在尝试使用Python构建一个字典。 代码如下:

dicti = {}
keys = [1, 2, 3, 4, 5, 6, 7, 8, 9]
dicti = dicti.fromkeys(keys)

values = [2, 3, 4, 5, 6, 7, 8, 9]

如何使用列表填充字典的值?是否有一些内置函数可以实现?

结果应该像这样:

dicti = {1:2,2:3,3:4,4:5,5:6,6:7,7:8,8:9}

我想从列表中添加值,values=[2,3,4,5,6,7,8,9]。 - user1455966
请发布 dicti 应该长什么样子。 - georg
dicti={1:2,2:3,3:4,4:5,5:6,6:7,7:8,8:9} - user1455966
2
@user1455966 你应该使用 dict.fromkeys 而不是使用你的字典名称来访问那个类方法。 - jamylak
可能是在Python中将两个列表映射到一个字典的重复问题。 - Jeremy
3个回答

26
如果您有两个列表keys相应的values
keys = [1, 2, 3, 4, 5, 6, 7, 8, 9]
values = [2, 3, 4, 5, 6, 7, 8, 9]
dicti = dict(zip(keys, values))

dicti现在是{1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9}


作为注意事项,使用zip时应该小心。重要的是要注意zip如何从较长的列表中删除值。这个例子演示了如果有人打算有9个对应的键值对但错过了values列表的第一个值会发生什么。请注意,实际上值被向前移动了一个位置,例如,值2最终与键1相对应!这可能不是预期的行为。确保检查代码是否符合您实际想要的内容。 - Steven C. Howell

1

对于您的特定情况,另一个一句话的解决方案是:

(原文已经翻译)
dicti = {k:v for k, v in enumerate(values, start=1)}

结果是:

这里填写具体的结果

print(dicti)
{1:2,2:3,3:4,4:5,5:6,6:7,7:8,8:9}

0

这个方法可以运行,但是列表必须是相同的大小(在键列表中删除9)

keys = [1, 2, 3, 4, 5, 6, 7, 8]
values = [2, 3, 4, 5, 6, 7, 8, 9]
dicti = {}

for x in range(len(keys)):
     dicti[keys[x]] = values[x]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接