Python: los elementos de la lista no se cambian en el bucle for

Me sorprendió cuando el siguiente código no hizo lo que esperaba:

lines_list = ['this is line 1\n', 'this is line 2\n', 'this is line 3\n']
for line in lines_list:
    line = line.strip()

Por supuesto, esperaba que cada elemento de la lista se convirtiera"stripped", es decir, en este caso, estar libre de la cola'\n' char, pero no lo hizo ...

print lines_list

La salida:

['this is line 1\n', 'this is line 2\n', 'this is line 3\n']

Como puede adivinar, mi pregunta es si hay una manera elegante de cambiar los elementos de la lista durante elfor ¿lazo? No quiero duplicar la lista ...

EDITAR:

Quería mencionar eso por cierto, enPerl o enJava, mi uso funciona bien. Python es el que tiene el comportamiento único

En Java esto funcionará:

String[] lines = {"this is line 1\n", "this is line 2\n", "this is line 3\n"};
for (String line : lines) {
    line = line.trim();
}

En Perl esto funcionará:

my @lines = ("this is line 1\n", "this is line 2\n", "this is line 3\n");
foreach my $line (@lines) {
    $line =~ s/\s+$//;
    $line =~ s/^\s+//;
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta