如何在嵌套列表的指定索引位置插入元素?
解决方案
要实现嵌套列表中每个子列表的指定索引插入值,核心是处理插入后列表长度变化导致的索引偏移问题,同时遍历所有子列表完成操作。以下是具体实现:
代码实现
# 原始数据 nested_list = [[2,3,4,5,2,3],[3,4,1,6,9,9]] insert_indices = [0,2,4] insert_value = 1 # 处理嵌套列表 result = [] for sublist in nested_list: # 复制子列表,避免修改原数据 temp_sublist = sublist.copy() # 倒序遍历索引,防止插入后后续索引偏移 for idx in reversed(insert_indices): temp_sublist.insert(idx, insert_value) result.append(temp_sublist) # 打印结果 print(result)
运行后输出:
[[1,2,3,1,4,5,1,2,3],[1,3,4,1,1,6,1,9,9]]
关键说明
- 倒序插入的原因:如果正序处理索引(比如先插0,再插2),第一次插入后列表长度增加1,原本的索引2会变成新列表的索引3,导致插入位置错误。倒序从大索引开始插入,前面的索引位置不会被后续操作影响。
- 复制子列表:如果不需要保留原始嵌套列表,可以跳过
sublist.copy(),直接修改原列表的子元素。 - 简化写法(列表推导式):如果追求代码简洁,也可以用列表推导式完成:
result = [sublist.copy() for sublist in nested_list] for sub in result: for idx in reversed(insert_indices): sub.insert(idx, insert_value)
内容的提问来源于stack exchange,提问作者Rod3291
相关产品推荐
相关产品推荐

