我是python的初学者。我有一份清单。我想循环遍历列表的值并分别将其添加到我的字典值。它看起来很简单,但我试着写几个循环,但没有一个对我有用。例如
Note : Total number of element in My_list and total number of key:value pairs in My_Dict are same.
My_list= [ [A,B,C], [D,E,F], [I,J,K] ]
My_dict= { 'Apple'= {'Color'=[data1,data2]} , 'Orange'= {'Color'=[data3,data4]}, 'Peach'={ 'color'=[data5,data6]} }
我试图通过将My_list的每个元素添加到字典的相应值来获得以下格式。
New_Dict= { 'Apple'= { 'Name'=[A,B,C], 'Color'=[data1,data2]} , 'Orange'= { 'Name'=[D,E,F] ,'Color'=[data3,data4]}, 'Peach'={ 'Name'=[I,J,K], 'color'=[data5,data6]} }
答案 0 :(得分:1)
根据评论中的建议,您需要使用collections.OrderedDict
代替常规dict
才能保留my_dict
的排序。在那里,您可以使用zip
以my_dict
方式迭代my_list
中的键和锁定步骤中my_list
的元素,并将OrderedDict
中的每个项目插入到from collections import OrderedDict
my_list = [['A', 'B', 'C'], ['D', 'E', 'F'], ['I', 'J', 'K']]
my_dict = OrderedDict([
('Apple', {'Color' : ['data1','data2']}),
('Orange', {'Color' : ['data3','data4']}),
('Peach', { 'color' : ['data5','data6']}),
])
for key, name in zip(my_dict, my_list):
my_dict[key]['Name'] = name
print(my_dict)
中的相应位置OrderedDict([('Apple', {'Color': ['data1', 'data2'], 'Name': ['A', 'B', 'C']}), ('Orange', {'Color': ['data3', 'data4'], 'Name': ['D', 'E', 'F']}), ('Peach', {'color': ['data5', 'data6'], 'Name': ['I', 'J', 'K']})])
:
{{1}}
输出:
{{1}}