dict1={'姓名':'张三','工资':5000}
dict2={'姓名':'李四','工资':8000}
dict3={'姓名':'王五','工资':3250}
dict4={'姓名':'赵六','工资':6500}
lst=[dict1,dict2,dict3,dict4]
result=[x['工资']+200 if x['工资']>=5000 else x['工资']+500 for x in lst]
结果是[5200, 8200, 3750, 6700],请问如何将结果写回到原来的每个字典中?
可以通过索引的方式来写回到原来的字典中。例如:
for i, x in enumerate(lst):
lst[i]['工资'] = result[i]
然后 lst 列表中就会包含修改后的字典了。例如:
print(lst)
输出结果为:
[{'姓名': '张三', '工资': 5200}, {'姓名': '李四', '工资': 8200}, {'姓名': '王五', '工资': 3750}, {'姓名': '赵六', '工资': 6700}]
也可以直接在列表推导式中进行修改,例如:
lst = [x.update({'工资': result[i]}) for i, x in enumerate(lst)]
这样就可以直接将修改后的字典写回到原来的列表中了。
下面是完整的代码示例:
dict1={'姓名':'张三','工资':5000}
dict2={'姓名':'李四','工资':8000}
dict3={'姓名':'王五','工资':3250}
dict4={'姓名':'赵六','工资':6500}
lst=[dict1,dict2,dict3,dict4]
result=[x['工资']+200 if x['工资']>=5000 else x['工资']+500 for x in lst]
# 通过索引的方式将修改后的值写回到原来的字典中
for i, x in enumerate(lst):
lst[i]['工资'] = result[i]
# 输出结果
print(lst)