Removing decimals from strings

Question:

I’m having an introductory course in python right now and i get into some troubles with the task.

I have two strings in format:

a b c d e  
f g h i l

I need to get this strings from .txt file,convert them as matrix to vertical format like this:

a f
b g
c h
d i
e l

and put into another .txt file, without using the numpy and pandas libraries. The problem is that from matrix like this:

1 2 3 4 5 
6 7 8 9 10 

where each number don’t have to be an integer, i need to get this matrix:

1 6
2 7
3 8 
4 9
5 10

and right now i can get only that with decimals:

1.0 6.0
2.0 7.0
3.0 8.0
4.0 9.0
5.0 10.0

So, from my POW, i need to somehow remove the .0 from the final result, but i dk how i can remove decimals from the strings, consisted with float numbers.

Here goes my code:

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)
Asked By: sasaikudasai

||

Answers:

Change float to int. float contains decimals. int does not.

Answered By: Bas Franken

Here is the solution as much as I understand your problem

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)

Input:

1 2 3 4.6 5.4 
6 7 8 9 10 

Output:

1 6
2 7
3 8
4 9
5 10
Answered By: Sabuhi Khalili
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.