Mi lista no está funcionando correctamente, ya que se crea como ["'carrots, 'tomatoes', 'lettuce'"]
lugar de['carrots, 'tomatoes', 'lettuce']
Tengo un archivo de texto con 'carrots, 'tomatoes', 'lettuce'
escrito en una sola línea, y así es como estoy escribiendo en mi lista:
veggie_list =[]
x = open('veggies.txt','r')
for item in x:
veggie_list.append(item)
Intenta esto (Asumiendo que tiene varias líneas en su archivo de texto):
veggie_list = []
with open('veg.txt','r') as x:
for item in x:
veggie_list.extend(item.replace("'", "").split(','))
print(veggie_list)
salidas:
['carrots', ' tomatoes', ' lettuce']
Si usted está interesado únicamente en la primera línea del archivo de texto:
veggie_list = []
with open('veg.txt','r') as x:
veggie_list = x.read().replace("'","").split(',')
print(veggie_list)
Un trazador de líneas en Python usando listas por comprensión :
with open('veg.txt','r') as x:
print([j for i in x for j in i.replace("'","").split(',')])
EXPLICACIÓN (para el primer código):
Es necesario eliminar primero las comillas simples de la línea que ha leído ( "'carrots', 'tomatoes', 'lettuce'"
) del archivo. Puede utilizar replace () método del str
objeto. Este método devuelve una copia de cadena modificada y que no cambia la cadena original.
Después de eso, se debe quedar con str "carrots, tomatoes, lettuce"
. Ahora, he usado split () método para dividir toda la cadena en cadenas individuales utilizando ","
como delimitador.
Este método devuelve una lista ['carrots', ' tomatoes', ' lettuce']
.