在 Python 中,可以使用 extend
方法将一个嵌套列表展开为一个扁平的列表,同时保留原始列表的索引。以下是一个示例代码:
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened_list = []
index_mapping = []
for i, sublist in enumerate(nested_list):
flattened_list.extend(sublist)
index_mapping.extend([i] * len(sublist))
print(flattened_list) # 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(index_mapping) # 输出:[0, 0, 0, 1, 1, 1, 2, 2, 2]
在上述代码中,我们首先创建了一个空的列表 flattened_list
用于存储展开后的列表,以及一个空的列表 index_mapping
用于存储索引。然后使用 enumerate
函数遍历原始列表 nested_list
,并使用 extend
方法将每个子列表展开并添加到 flattened_list
中。同时,使用列表生成式 [i] * len(sublist)
来生成与子列表长度相同的索引列表,并使用 extend
方法将其添加到 index_mapping
中。
这样,我们就得到了一个扁平化的列表 flattened_list
,并且通过 index_mapping
可以知道每个元素在原始列表中的索引位置。