Entonces, estoy tratando de leer línea por línea del archivo de texto usando python y obtuve una lista de listas. Y tengo que usar los elementos de la lista para crear el diccionario. entonces lo que hice fue
list1 = [] for line in file: lines = line.strip().split() list1.append(lines) print(list1)
Y lo que obtuve cuando lo ejecuté es la lista de listas pero algo diferente a lo que quería obtener, obtuve algo como esto,
['a,b,c,d,e,f']
Lo que quería conseguir era algo como esto,
[a,b,c,d,e,f]
Entonces, ¿cómo nos deshacemos de ese '' dentro de la lista? Intenté usar el método de eliminación, pero no funcionó.
solo necesita cambiar el separador en la tira del espacio en blanco predeterminado a ",". es decir, solo necesita agregar el argumento del separador en la función de tira.
list1 = [] for line in file: lines = line.strip().split(',') list1.append(lines) print(list1)
entonces si el texto es:
a B C D e F
la función strip tomaría el separador como "," y crearía una lista para él.
por lo tanto la salida sería:
['a','b','c','d','e','f']
por lo tanto, finalmente solo necesita cambiar el argumento separador de line.strip() de espacios en blanco a una lista separada por comas y ya está.
Lo que tienes aquí es una lista con un solo elemento. Contiene una sola cadena que es 'a,b,c,d,e,f'
.
Podemos verificar dos veces:
data = ['a,b,c,d,e,f'] print(len(data)) # prints 1 print(data[0]) # prints 'a,b,c,d,e,f'
Lo que quieres es dividir esta cadena en una lista:
row = data[0].split(',')
Ahora la row
contiene lo que esperaba que fueran los data
, que es ['a', 'b', 'c', 'd', 'e', 'f']
.
En un caso real, probablemente arreglaría esto mientras lee el archivo, el código podría verse así:
list1 = [] with open('test.csv') as test_file: for line in test_file: list1.append(line.strip().split(',')) print(list1)
Ahora tendría una lista por línea en su archivo de entrada:
[ ['a', 'b', 'c', 'd', 'e', 'f'], ['g', 'h', 'i', 'j', 'k', 'l'], ]
Simplemente cambie el delimitador de '' a ','
list1 = [] for line in file: lines = line.strip().split(,) list1.append(lines) print(list1)
tú eres bueno para irte