Python不导入模块如何将嵌套列表按指定格式写入TXT文件
错误原因
- 索引写法错误:代码中的
[i][j]是将当前子列表i再次包裹为新列表,该新列表长度始终为1,j从1开始取值必然超出索引范围 - 循环逻辑错误:while循环内没有对
j做自增操作,即使索引写法正确也会进入死循环 - 缩进错误:for循环行的缩进超过了open行,会直接触发语法错误
无依赖解决方法
简洁实现(推荐)
用字符串的join方法拼接剩余元素,配合with上下文管理器自动管理文件句柄,无需手动关闭文件:
alist = [['Hi', 500], ['Bye', 500.0, 100, 900, 600], ['Great', 456, 700.0, 600], ["Yay", 200, 350.0], ["Ok", 200, 300, 400.0]] with open("filename.txt", "w") as txtfile: for sub_list in alist: line = f"{sub_list[0]} {','.join(str(item) for item in sub_list[1:])}\n" txtfile.write(line)
原有代码修改版
对齐你原本的写法逻辑修改后可正常运行:
txtfile = open("filename.txt", "w") for i in alist: txtfile.write(i[0] + " ") j = 1 while j < len(i): # 修正索引写法,非末尾元素加逗号,末尾元素不加 content = str(i[j]) if j == len(i)-1 else str(i[j]) + "," txtfile.write(content) j += 1 txtfile.write("\n") txtfile.close()
注:你给出的预期输出中
Great行的246为笔误,原列表对应值为456,代码输出与原列表数据一致,如需调整直接修改原列表对应值即可。
内容的提问来源于stack exchange,提问作者Pranav Sundaram
相关产品推荐
相关产品推荐

