如何创建这个字典?

时间:2013-05-12 07:22:06

标签: python list dictionary

我有一个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与上述项目的顺序一致。我们怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

dict本质上是无序的。要保留顺序,请使用collections.OrderedDict

答案 1 :(得分: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]}