Python如何按字典匹配替换列表元素,能否使用lambda实现?
需求实现方案
完全可以使用lambda完成该需求,以下是具体实现逻辑和代码示例(以Python为例):
核心逻辑
利用字典的get方法特性:查找指定键,存在则返回对应值,不存在则返回传入的默认值,刚好匹配「键存在就替换、不存在就保留原值」的规则。
实现方式
1. lambda + map 实现(符合lambda使用要求)
# 定义原始列表和映射字典 origin_list = ["yellow", "red", "green", "blue"] map_dict = {"green": "go", "yellow": "attention", "red": "stay"} # 生成新列表 new_list = list(map(lambda x: map_dict.get(x, x), origin_list)) print(new_list) # 输出结果:['attention', 'stay', 'go', 'blue']
代码说明:map函数会将lambda表达式作用到原列表的每一个元素上,最终转为list类型即可得到目标结果。
2. 列表推导式实现(可读性更高)
如果不强制要求用lambda,也可以用更简洁易读的列表推导式实现,效果完全一致:
new_list = [map_dict.get(x, x) for x in origin_list]
内容的提问来源于stack exchange,提问作者Константин Прудников
相关产品推荐
相关产品推荐

