迭代地在一本字典中追加字典?
Append dictionaries in one dictionary iteratively?
我的代码:
i = 0
dict_1 = {}
new_dict_1 = {}
a = ['E', 'F', 'F','F', 'S', 'P']
b = ['11', '22', '33','44', '55', '66']
while i <6:
dict_1['Letter'] = a[i]
dict_1['Num'] = b[i]
new_dict_1 = new_dict_1, dict_1
i+=1
print(new_dict_1)
期望输出:
{{'Letter': 'E', 'Num': '11'},{'Letter': 'F', 'Num': '22'},{'Letter': 'F', 'Num': '33'},{'Letter': 'F', 'Num': '44'},{'Letter': 'S', 'Num': '55'},{'Letter': 'P', 'Num': '66'}}
当前输出(非期望):
(((((({}, {'Letter': 'P', 'Num': '66'}), {'Letter': 'P', 'Num': '66'}), {'Letter': 'P', 'Num': '66'}), {'Letter': 'P', 'Num': '66'}), {'Letter': 'P', 'Num': '66'}), {'Letter': 'P', 'Num': '66'})
问题:
如何更新代码,以便获得我想要的结果?
使用'.update()'似乎不合适。
谢谢!
你可以使用列表理解 -
result = [{'Letter':letter,'Num':num} for letter,num in zip(a,b)]
或者您可以使用地图 -
result = list(map(lambda x:{'Letter':x[0],'Num':x[1]},zip(a,b)))
我的代码:
i = 0
dict_1 = {}
new_dict_1 = {}
a = ['E', 'F', 'F','F', 'S', 'P']
b = ['11', '22', '33','44', '55', '66']
while i <6:
dict_1['Letter'] = a[i]
dict_1['Num'] = b[i]
new_dict_1 = new_dict_1, dict_1
i+=1
print(new_dict_1)
期望输出:
{{'Letter': 'E', 'Num': '11'},{'Letter': 'F', 'Num': '22'},{'Letter': 'F', 'Num': '33'},{'Letter': 'F', 'Num': '44'},{'Letter': 'S', 'Num': '55'},{'Letter': 'P', 'Num': '66'}}
当前输出(非期望):
(((((({}, {'Letter': 'P', 'Num': '66'}), {'Letter': 'P', 'Num': '66'}), {'Letter': 'P', 'Num': '66'}), {'Letter': 'P', 'Num': '66'}), {'Letter': 'P', 'Num': '66'}), {'Letter': 'P', 'Num': '66'})
问题:
如何更新代码,以便获得我想要的结果? 使用'.update()'似乎不合适。
谢谢!
你可以使用列表理解 -
result = [{'Letter':letter,'Num':num} for letter,num in zip(a,b)]
或者您可以使用地图 -
result = list(map(lambda x:{'Letter':x[0],'Num':x[1]},zip(a,b)))