Python如何利用字典映射替换嵌套列表中的对应数值
Python实现嵌套列表的字典映射替换
实现思路
嵌套列表中的元素为float类型,字典的key为int类型,需要先将列表元素转换为int类型后再匹配字典取值,使用嵌套列表推导式可以简洁完成需求。
注意事项
请勿使用dict作为自定义变量名,会覆盖Python内置的字典类型,引发后续调用异常,这里统一修改为map_dict。
实现代码
# 原始数据 list_1 = [[1.0, 2.0, 3.0, 1.0], [3.0, 1.0, 2.0, 4.0]] map_dict = {1:12, 2:10, 3:5, 4:2, 5:1} # 执行映射替换 result = [[map_dict[int(item)] for item in sub_list] for sub_list in list_1] print(result)
运行输出
[[12, 10, 5, 12], [5, 12, 10, 2]]
可选扩展
如果存在列表元素不在字典key中的场景,可使用get方法设置默认值避免KeyError,示例:
# 找不到对应key时返回原始值 result = [[map_dict.get(int(item), item) for item in sub_list] for sub_list in list_1]
内容的提问来源于stack exchange,提问作者Scott Woodhall
相关产品推荐
相关产品推荐

