2012-07-13 221 views
3

我想在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} 
+0

我想从列表中添加值,值= [2,3,4,5,6,7,8,9] – user1455966 2012-07-13 09:50:12

+0

请后应该是什么'dicti'等。 – georg 2012-07-13 09:50:45

+0

dicti = {1:2,2:3,3:4,4:5,5:6,6:7,7:8,8:9} – user1455966 2012-07-13 09:53:12

回答

18

如果你有两个列表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}

+0

作为一个说明,应该使用拉链时要小心。注意'zip'如何从较长的列表中删除值是很重要的。这个例子演示了如果有人打算拥有9个相应的键:值对,但却错过了“值”列表中的第一个值,会发生什么情况。注意值是如何实际移位的,例如,值2以键1结束!这可能不是预期的行为。请务必检查代码是否符合您的预期。 – 2017-03-20 15:25:14

0

这会起作用,但该清单必须是相同的大小(下降9我n个键列表)

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]