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+//;
}