2013-05-12 65 views
0

我有一个dict对象和一个list包含列表,并希望将dict的键与列表中的列表组合在一起,但结果总是以(预定的)混乱出现。如何创建本字典?

my_dict = {(255,0,0):'red', (0,255,0):'green', (0,0,255):'blue'} 
my_list = [[1,2,3], [4,5,6], [7,8,9]] 

new_dict = dict(zip(my_dict, mylist)) 

正如你可能已经猜到,这是不实际的数据,但它是我用我的程序的方法,如果有必要,我会发布真正的字典和列表。

我想要的是new_dict与上述项目的排序一致。我们怎样才能做到这一点?

+0

'dict's没有顺序 – jamylak 2013-05-12 07:23:32

+0

他们肯定有一些场景顺序后面,因为结果总是相同的,但完全混乱。 – 2013-05-12 07:24:31

+0

是的,但后台排序也是(伪)随机化 – jamylak 2013-05-12 07:25:09

回答

2

您可以使用OrderedDict,普通字典(dict)是无序的。

from collections import OrderedDict 

my_dict = OrderedDict([((255,0,0),'red'), ((0,255,0),'green'), ((0,0,255),'blue')]) #[(key,val),(key2,val2),..] 
my_list = [[1,2,3], [4,5,6], [7,8,9]] 

new_dict = dict(zip(my_dict, my_list)) 
print(new_dict) 

>>> 
{(0, 0, 255): [7, 8, 9], (0, 255, 0): [4, 5, 6], (255, 0, 0): [1, 2, 3]}