2013-05-12 62 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]}