我现在正在上python入门课程,我遇到了一些问题。
我有两个字符串格式:
a b c d e
f g h i l
我需要从。txt文件中获得这些字符串,将它们转换为矩阵到垂直格式,像这样:
a f
b g
c h
d i
e l
并放入另一个.txt文件中,不使用numpy和pandas库。问题是,从这样的矩阵:
1 2 3 4 5
6 7 8 9 10
其中每个数字不一定是整数,我需要得到这个矩阵:
1 6
2 7
3 8
4 9
5 10
现在我只能用小数来表示
1.0 6.0
2.0 7.0
3.0 8.0
4.0 9.0
5.0 10.0
所以,从我的POW,我需要以某种方式从最终结果中删除。0,但我知道如何从字符串中删除小数,由浮点数组成。
下面是我的代码:with open('input.txt') as f:
Matrix = [list(map(float, row.split())) for row in f.readlines()]
TrMatrix=[[Matrix[j][i] for j in range(len(Matrix))] for i in range(len(Matrix[0]))]
file=open('output.txt','w')
for i in range(len(TrMatrix)):
print(*TrMatrix[i],file=file)
这是我了解你的问题的解决方案
with open('input.txt') as f:
cols = []
for row in f.readlines():
col = [int(float(i)) for i in row.split()]
cols.append(col)
new_rows = []
for i in range(len(cols[0])):
new_rows.append(' '.join([str(col[i]) for col in cols]))
Tr_matrix = 'n'.join(new_rows)
with open('output.txt','w') as file:
file.write(Tr_matrix)
print(Tr_matrix)
输入:
1 2 3 4.6 5.4
6 7 8 9 10
输出:
1 6
2 7
3 8
4 9
5 10
将float改为int。Float包含小数。