Tengo un archivo de texto grande que se lee como
Kyle 40
Greg 91
Reggie 58
¿Cómo convertiría esto a una matriz que se ve así?
array = ([Kyle, 40], [Greg, 91], [Reggie, 58])
Gracias de antemano.
4 respuestas
Asumiendo la entrada adecuada:
array = []
with open('file.txt', 'r') as f:
for line in f:
name, value = line.split()
value = int(value)
array.append((name, value))
Alternativa a la solución de Manny:
with open('file.txt', 'r') as f:
myarray = [line.split() for line in f]
for line in f is
más idiomática quefor line in f.read()
La salida tiene la forma:
myarray = [['Kyle', '40'], ['Greg', '91'], ['Reggie', '58']]
Abra el archivo, lea en cada línea, quite el carácter de nueva línea del extremo, divídalo en el carácter de espacio, luego convierta el segundo valor en un int:
array = [(name, int(number)) for name, number in
(line.strip().split() for line in open('textfile'))]
... O incluso más corta que la presentada en la respuesta aceptada:
array = [(name, int(i)) for name,i in open(file)]
Preguntas relacionadas
Preguntas vinculadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.