如何在Python中转换矩阵并导出无方括号的TXT/CSV文件
矩阵转换与文件保存处理方案
一、把矩阵A转成目标矩阵B
要实现这个转换,核心逻辑就是把A里的每个子列表逐一拆解,将子列表中的每个元素单独包装成一个单元素子列表,最后按顺序把所有这些单元素子列表拼接成大列表。
用Python实现的代码如下:
A = [[1,2,3,4],[4,3,2,1],[3,2,1,4],[2,1,4,3]] # 嵌套遍历:先遍历A的每个子列表,再遍历子列表里的每个元素,包装成[元素]的格式 B = [[num] for sublist in A for num in sublist]
运行这段代码后,B就完全符合你想要的格式了。
二、保存数据时去除所有方括号
不管是存成.txt还是.csv文件,关键是把数据转换成纯数字的文本格式,避开列表的方括号格式。
保存为.txt文件
直接把B里的每个数字提取出来,每行写一个数字即可:
# 提取所有数字并转成字符串,用换行符连接 text_content = '\n'.join(str(item[0]) for item in B) # 写入文件 with open('result.txt', 'w', encoding='utf-8') as f: f.write(text_content)
打开result.txt后,里面只会显示每行一个数字,没有任何方括号。
保存为.csv文件
有两种简单的方式:
方式1:用Python内置的csv模块
import csv with open('result.csv', 'w', newline='', encoding='utf-8') as csv_file: writer = csv.writer(csv_file) # 直接写入每个单元素子列表,csv模块会自动只保留数字 writer.writerows(B)
方式2:手动拼接字符串写入
如果不想用csv模块,也可以像处理txt那样,把数字用逗号或换行连接后写入:
# 按每行一个数字保存 csv_content = '\n'.join(str(item[0]) for item in B) # 或者按一行用逗号分隔所有数字:csv_content = ','.join(str(item[0]) for item in B) with open('result.csv', 'w', encoding='utf-8') as f: f.write(csv_content)
两种方式生成的csv文件里都不会有方括号。
内容的提问来源于stack exchange,提问作者Công Minh Đặng
相关产品推荐
相关产品推荐

