2017-07-30 128 views
1

如果我有:创建一个新的字典使用现有和列表

adict = {'a':3, 'b':6, 'c':9, 'd':12} 
alist = ['a', 'z', 't', 's'] 

我将如何创建与第一字典的按键和列表项的新字典,造成这?

bdict = {'a': 'a', 'b': 'z', 'c': 't', 'd': 's'} 
+1

你不能这样做,字典没有排序,不像列表 –

+0

除非你不关心订单 –

+0

是a-d,z,t,s变量吗?还是字符串? –

回答

4

为了使按键adict共同的价值观从ALIST使用zip()功能。

我用
>>> from collections import OrderedDict 
>>> adict = OrderedDict([('a', 3), ('b', 6), ('c', 9), ('d', 12)]) 
>>> alist = ['a', 'z', 't', 's'] 
>>> bdict = OrderedDict(zip(adict, alist)) 
>>> bdict 
OrderedDict([('a', 'a'), ('b', 'z'), ('c', 't'), ('d', 's')]) 

有序词典这里,因为这个问题才有意义,如果该词典是 S;否则,您不能保证adrenalist之间的成对一一对应关系。