Python: ¿Por qué estas líneas de diferentes valores de indicación de código?

jackcrouch:

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

Abhiaror:

¿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. forbucle se utiliza si quiere iterar a través de una secuencia. Sin embargo, también se va a sobrescribir la variable xen 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 yy 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']).

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=387884&siteId=1
Recomendado
Clasificación