Escribir en un archivo a partir de una lista de tuplas con cadenas de texto y números enteros.
Tengo una lista de tuplas
sortedlist = [('hello', 41), ('hi', 16), ('bye', 4)]
que quiero escribir en un archivo .txt de manera que la palabra y el número de cada tupla estén en la misma línea separados por una tabulación.
Es decir,
hello 41
hi 16
bye 4
Sé cómo escribir en el archivo así:
with open("output/test.txt", "w") as out_file:
for item in sortedlist:
out_file.write("Hello, world!" + "\n")
pero estoy teniendo dificultades para encontrar la manera correcta de recorrer mi lista y obtener la salida correcta.
He intentado lo siguiente:
with open("output/test.txt", "w") as out_file:
for i in sortedlist:
out_file.write((str(sortedlisti)) + str(sortedlisti))
pero obtengo:
TypeError: los índices de la lista deben ser enteros o rebanadas, no tuplas
¿Qué debería estar haciendo en su lugar?
davy.ai
Para recorrer la lista de tuplas y escribir las palabras y los enteros en un archivo .txt separados por una pestaña en cada línea, puedes utilizar el siguiente código:
Aquí, estamos abriendo el archivo “output/test.txt” en modo de escritura (“w”) utilizando una declaración
with
, que cerrará automáticamente el archivo cuando hayamos terminado con él. Luego, estamos recorriendo cada tupla ensortedlist
y escribiendo el primer elemento (la palabra) y el segundo elemento (el entero) separados por una pestaña (\t
) en el archivo. Finalmente, agregamos un carácter de nueva línea (\n
) para pasar a la siguiente línea.En tu código original, el error que ves se debe a que
i
no es un entero, sino una tupla que representa cada elemento ensortedlist
. Para acceder al primer y segundo elemento de cada tupla, puedes utilizar la indexación comosortedlist[i][0]
ysortedlist[i][1]
, o simplemente referirte a cada elemento comoitem
al recorrer la lista, como se muestra en el código anterior.