我正在尝试使用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}
我正在尝试使用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}
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
如何从较长的列表中删除值。这个例子演示了如果有人打算有9个对应的键值对但错过了values
列表的第一个值会发生什么。请注意,实际上值被向前移动了一个位置,例如,值2最终与键1相对应!这可能不是预期的行为。确保检查代码是否符合您实际想要的内容。 - Steven C. Howell对于您的特定情况,另一个一句话的解决方案是:
(原文已经翻译)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}
这个方法可以运行,但是列表必须是相同的大小(在键列表中删除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]
dicti
应该长什么样子。 - georgdict.fromkeys
而不是使用你的字典名称来访问那个类方法。 - jamylak