如何用Python将特定格式CSV文件还原为四维列表?
将CSV还原为四维列表的实现方法
场景说明
你之前通过三层循环将四维列表导出为CSV,现在需要逆向操作,把该CSV还原回原始的四维列表格式。原始四维列表示例:
tokens = [[[["a"], ["b"], ["c"]], [["d"]]], [[["e"], ["f"], ["g"]],[["h"], ["i"], ["j"], ["k"], ["l"]]]]
逆向实现代码
import csv def import_from_csv(csv_path): tokens = [] with open(csv_path, 'r') as f: reader = csv.reader(f) next(reader) # 跳过表头行 for row in reader: # 解析索引和值,注意索引转为整数,值还原为列表格式 h_index = int(row[0]) i_index = int(row[1]) j_index = int(row[2]) word = [row[3]] # 对应原数据里的j格式:["a"] # 确保每一层列表长度足够,不足则补空列表 while len(tokens) <= h_index: tokens.append([]) while len(tokens[h_index]) <= i_index: tokens[h_index].append([]) while len(tokens[h_index][i_index]) <= j_index: tokens[h_index][i_index].append([]) # 将值放入对应位置 tokens[h_index][i_index][j_index] = word return tokens # 调用示例 restored_tokens = import_from_csv('TEST.csv') print(restored_tokens)
代码逻辑说明
- 读取CSV文件时先跳过表头行(
["A", "B", "C", word]); - 逐行解析索引:将CSV中前3列的字符串转为整数,对应原导出时的
h_index、i_index、j_index; - 还原值的格式:原数据中每个元素是单元素列表(比如
["a"]),所以把CSV第4列的字符串重新包装为列表; - 动态构建嵌套列表:通过
while循环检查每一层列表的长度,确保索引对应的位置存在,不存在则补空列表,避免索引越界; - 将还原后的值放入对应索引位置,最终拼接成原始的四维列表。
内容的提问来源于stack exchange,提问作者kartikeya saraswat
相关产品推荐
相关产品推荐

