Soy relativamente nuevo en la codificación y la pitón y estoy tratando de envolver mi cabeza redonda algunos conceptos. Una estoy luchando en es la función split () y por qué estos dos trozos del producto alimenticio código dos salidas diferentes
y = ["hello\n", "world\n", "python\n"]
x = [line.strip() for line in y]
print(x)
y
y = ["hello\n", "world\n", "python\n"]
for line in y:
x = [line.strip()]
print(x)
La primera pieza de código produce una salida de
['hello', 'world', 'python']
Mientras que la segunda produce
['python']
¿Alguien sabe por qué esto es, en cuanto a mí que debería hacer lo mismo por tanto producir una salida de
['python']
Gracias
¿Alguien sabe por qué esto es, en cuanto a mí que deberían hacer lo mismo por tanto producir una salida de [ 'Python'].
Su primer código utiliza la comprensión de la lista que se utiliza para crear una secuencia. Proporciona una manera concisa para crear listas o secuencia de elementos.
Su segundo código es, básicamente, utilizando un bucle sólo para obtener el último elemento de la lista y
. for
bucle se utiliza si quiere iterar a través de una secuencia. Sin embargo, también se va a sobrescribir la variable x
en cada uno de su iteración y, por tanto, al salir del bucle, se apunta al último elemento (es decir, [ 'Python']). Prueba esto:
for line in y:
x = [line.strip()]
print(x)
Si lo que desea es el último elemento de la lista y
y tiras () que, también puede hacerlo a través de:
x = [ y[-1].strip() ]
O
Si desea que la lista, a continuación, utilizar el primer código.
MÁS INFORMACIÓN
Si usted puede cambiar su segundo código a:
x = [ ]
y = ["hello\n", "world\n", "python\n"]
for line in y:
x.append(line.strip())
print(x)
Entonces ambos imprimir misma salida (es decir, ['hello', 'world', 'python']
).