es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Lista anidada de Python a partir de un archivo.

Digamos que tengo el siguiente archivo .txt:

"StringA1","StringA2","StringA3"
"StringB1","StringB2","StringB3"
"StringC1","StringC2","StringC3"

Y quiero una lista anidada en el formato:

nestedList = [["StringA1","StringA2","StringA3"],["StringB1","StringB2","StringB2"],["StringC1","StringC2","StringC3"]]

para poder acceder a StringB2, por ejemplo, de esta manera:

nestedList[1][1]

¿Cuál sería el mejor enfoque? No tengo una cantidad enorme de datos, tal vez 100 líneas como máximo, así que no necesito una base de datos o algo así.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mejor enfoque para crear la lista anidada a partir del archivo .txt proporcionado sería utilizar el módulo csv en Python. Este módulo proporciona funcionalidad para leer y escribir archivos CSV (valores separados por comas), que es el formato del archivo .txt proporcionado.

    Aquí hay un ejemplo de fragmento de código que lee el archivo .txt, analiza cada línea utilizando el método csv.reader(), y agrega cada fila a una lista anidada:

    import csv
    
    listaAnidada = []
    
    with open('datos.txt') as archivo:
        lector = csv.reader(archivo, delimiter=',')
        for fila in lector:
            listaAnidada.append(fila)
    
    print(listaAnidada)
    

    Al ejecutar este código con el archivo .txt proporcionado, se obtendría el siguiente resultado:

    [['StringA1', 'StringA2', 'StringA3'], ['StringB1', 'StringB2', 'StringB3'], ['StringC1', 'StringC2', 'StringC3']]
    

    Luego puede acceder a un elemento en la lista anidada por su índice, así:

    print(listaAnidada[1][1]) # Devuelve 'StringB2'
    

Comments are closed.