如何在键匹配时用字典值替换嵌套列表子项的第二个元素
实现方案
1. 列表推导式(生成新列表,不修改原数据,推荐)
直接通过遍历构造新列表,代码简洁易读:
# 原始数据 lst = [[1,0],[20,0],[21,1],[22,3],[24,2]] dct = {0:"Balco",1:"Greg",2:"Palm",3:"New"} # 替换逻辑 result = [[sublist[0], dct[sublist[1]]] for sublist in lst] print(result) # 输出:[[1, 'Balco'], [20, 'Balco'], [21, 'Greg'], [22, 'New'], [24, 'Palm']]
2. 遍历修改原列表
不需要保留原列表时可以用这个方法,直接在原列表上修改:
lst = [[1,0],[20,0],[21,1],[22,3],[24,2]] dct = {0:"Balco",1:"Greg",2:"Palm",3:"New"} for item in lst: item[1] = dct[item[1]] print(lst) # 输出同上
异常兼容
如果列表中可能存在字典里没有的键,可以用get方法指定默认值避免报错:
# 找不到对应键时默认返回"Unknown",可自定义默认值 result = [[sublist[0], dct.get(sublist[1], "Unknown")] for sublist in lst]
内容的提问来源于stack exchange,提问作者Rikky Bhai
相关产品推荐
相关产品推荐

