如何根据索引映射替换二维列表中的原始值
实现方法
在Python中,你可以通过列表推导式快速完成这个替换操作,遍历二维列表的每个子列表,再逐个将子列表里的元素用映射字典对应的值替换即可。
代码示例:
# 定义映射关系 mapping = {0: 0, 22: 1, 334: 2, 6666: 3} # 原始二维列表 original_list = [[0,22],[22,334,6666],[22,334],[0,6666]] # 执行替换 result = [[mapping[num] for num in sublist] for sublist in original_list] print(result)
运行后会输出预期结果:[[0,1],[1,2,3],[1,2],[0,3]]
补充说明:
- 如果原始列表里可能存在映射字典中未定义的键,可改用
mapping.get(num, num),这样不存在的键会保留原值,避免抛出KeyError。 - 也可以用嵌套循环实现,逻辑和列表推导式一致,写法更直观:
result = [] for sublist in original_list: temp_sublist = [] for num in sublist: temp_sublist.append(mapping[num]) result.append(temp_sublist)
内容的提问来源于stack exchange,提问作者Kartik Aggarwal
相关产品推荐
相关产品推荐

