如何将Python列表中的数值替换为指定元组的索引0元素
嵌套列表的索引替换实现
给定嵌套列表:
lst = [[0,1],2,[3]]
以及元组列表:
lst_2 = [("x1","y1"),("x2","y2"), ("x3","y3"), ("x4","y4")]
需要将lst中的数值作为索引,替换为lst_2对应位置元组的第0个元素,最终得到结果:[["x1","x2"], "x3", ["x4"]]。
解决方案
通过递归函数处理嵌套结构,遍历每个元素:
- 若元素是列表,则递归处理该子列表
- 若元素是数值,则从
lst_2中取出对应索引的元组的第0个元素
实现代码如下:
def replace_indices(nested_list, tuple_list): result = [] for item in nested_list: if isinstance(item, list): result.append(replace_indices(item, tuple_list)) else: result.append(tuple_list[item][0]) return result # 测试执行 lst = [[0,1],2,[3]] lst_2 = [("x1","y1"),("x2","y2"), ("x3","y3"), ("x4","y4")] new_lst = replace_indices(lst, lst_2) print(new_lst) # 输出: [["x1","x2"], "x3", ["x4"]]
说明
递归方式可灵活处理任意深度的嵌套列表,若你的嵌套结构中包含其他可迭代类型(如元组),可在类型判断中加入对应条件扩展处理逻辑。
内容的提问来源于stack exchange,提问作者rose
相关产品推荐
相关产品推荐

