Python如何将列表元素依次设置为已有字典的value值
实现方法
你需要将列表元素按顺序对应字典的键值对,按常见的「字典键从大到小依次匹配列表下标」的对应逻辑,提供两种可直接使用的实现:
方案1:生成新列表(推荐,代码简洁)
my_list = [10,9,8,7] my_dict = {4:0, 3: 0, 2: 0 , 1 : 0} # 对字典键降序排序,依次取对应值生成新列表 my_list = [my_dict[k] for k in sorted(my_dict, reverse=True)]
方案2:修改原列表(适用需要保留原列表对象的场景)
my_list = [10,9,8,7] my_dict = {4:0, 3: 0, 2: 0 , 1 : 0} sorted_keys = sorted(my_dict, reverse=True) for index, key in enumerate(sorted_keys): my_list[index] = my_dict[key]
其他匹配逻辑补充
如果你实际的对应逻辑是「以列表的元素为键,取字典对应值替换列表元素」,可使用如下写法(需保证列表元素都在字典的键中,否则会抛出KeyError):
my_list = [4,3,2,1] # 示例:列表元素为字典的键 my_dict = {4:0, 3: 0, 2: 0 , 1 : 0} my_list = [my_dict[item] for item in my_list]
内容的提问来源于stack exchange,提问作者kraljevocs
相关产品推荐
相关产品推荐

