我有一个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 :(得分: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]}