Python - Ayuda matriz en Python

 
Vista:

Ayuda matriz en Python

Publicado por Kovalain (1 intervención) el 04/01/2012 22:17:38
Hola

Veréis ,empecé ayer con Python para hacer unas cosillas (sé Java,C++ y Scheme) y el problema me llegó al intentar pasar de un fichero a una matriz.

Recibo un fichero tal que así:
1 2 4
2 10 5
3 1 4
8 12 6

Y tengo que almacenarlo en una matriz de esa misma manera , es decir 4 filas y 3 columnas.
En python sería algo así:
a=[[1,2,3,8],[2,10,1,12],[4,5,4,6]]


He intentado miles de formas ,limitadísimo porque en un día no se puede manejar un lenguaje a la perfección por simple que parezca. Ya no sé que probar , a ver si alguien se defienda en este lenguaje me puede ayudar se lo agradecería muchísimo :sisi1:.


Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda matriz en Python

Publicado por xve (1646 intervenciones) el 05/01/2012 12:43:40
Hola Kovalain, una primera manera, seria algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
try:
    f = file("file.txt","r")
except:
    print "El archivo no existe"
else:
    lineas=f.read().splitlines()
    # Creamos una lista con tres listas en su interior
    a=[[],[],[]]
    # recorremos cada una de las lineas
    for i in lineas:
        # obtenemos un array de cada una de las lineas
        values=i.split()
        # Añadimos a cada lista el nuevo valor
        a[0].append(values[0])
        a[1].append(values[1])
        a[2].append(values[2])
    print a

Lo he probado y funciona, aunque creo que tiene que haber alguna manera mas rapida que ir recorriendo las lineas del archivo.

El contenido de file.txt es:
1
2
3
4
1 2 4
2 10 5
3 1 4
8 12 6
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar