如何将列表元素逐一作为键值对添加到字典列表对应字典末尾
给字典列表批量添加对应键值对
需求:将列表available_times_array中的每个元素,作为键为'c'的键值对,添加到字典列表user_data中对应的字典末尾,得到指定结果数组。
原始数据:
user_data = [{'a': '1', 'b': '3'}, {'a': '2', 'b': '4'}, {'a': '5', 'b': '1'}] available_times_array = ['12:00', '12:10', '12:20']
期望结果:
user_data = [ {'a': '1', 'b': '3', 'c': '12:00'}, {'a': '2', 'b': '4', 'c': '12:10'}, {'a': '5', 'b': '1', 'c': '12:20'} ]
解决方案
方法一:索引循环修改原列表
直接遍历索引,给对应位置的字典添加键值对:
for i in range(len(user_data)): user_data[i]['c'] = available_times_array[i]
注意:此方法会直接修改原user_data列表中的字典,要求两个列表长度完全一致。
方法二:用zip配对遍历(更简洁)
利用zip将两个列表的元素按位置一一配对,遍历后添加键值对:
for data, time in zip(user_data, available_times_array): data['c'] = time
这种写法更符合Python风格,同样要求两个列表长度匹配,会修改原字典。
方法三:生成新列表(不修改原数据)
如果不想改动原user_data,可以用列表推导式创建新的字典列表:
new_user_data = [dict(item, c=time) for item, time in zip(user_data, available_times_array)]
此方法会生成全新的字典,原数据保持不变。
内容的提问来源于stack exchange,提问作者Abdolbasir Tibash
相关产品推荐
相关产品推荐

