Python如何将列表元素按顺序对应赋值给等长字典的value值
Python列表元素按顺序更新字典值的实现方案
首先注意:请勿使用list、dict作为自定义变量名,二者是Python内置类型的关键字,占用后会导致后续无法正常调用对应内置方法,以下示例将变量名修改为my_list和my_dict。
适用前提
Python版本 >= 3.7:该版本开始Python原生字典默认保留键的插入顺序,可保证my_dict.keys()的顺序和你定义字典时的键顺序完全一致。如果使用更早版本的Python,需要将普通字典替换为collections.OrderedDict才能保证顺序对应。
实现代码
方法1:遍历配对更新(可读性高)
my_list = [1, 2, 3, 4, 5] my_dict = {2433: 0, 2429: 0, 2425: 0, 2423: 0, 2427: 0} for key, value in zip(my_dict.keys(), my_list): my_dict[key] = value print(my_dict) # 输出:{2433: 1, 2429: 2, 2425: 3, 2423: 4, 2427: 5}
方法2:一行代码实现(简洁高效)
利用字典的update()方法可以直接接收可迭代键值对的特性,直接完成更新:
my_list = [1, 2, 3, 4, 5] my_dict = {2433: 0, 2429: 0, 2425: 0, 2423: 0, 2427: 0} my_dict.update(zip(my_dict, my_list)) print(my_dict) # 输出:{2433: 1, 2429: 2, 2425: 3, 2423: 4, 2427: 5}
这里zip(my_dict, my_list)会直接按顺序生成字典键和列表元素的配对元组,符合update()方法的参数要求。
内容的提问来源于stack exchange,提问作者Andrey As
相关产品推荐
相关产品推荐

