Python: os itens da lista não são alterados no loop for
Fiquei chocado quando o código a seguir não fez o que eu esperava:
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()
Obviamente, eu esperava que cada item da lista se tornasse"stripped"
, ou seja, neste caso, estar livre da trilha'\n'
char, mas não ...
print lines_list
A saída:
['this is line 1\n', 'this is line 2\n', 'this is line 3\n']
Então, como você pode imaginar, minha pergunta é se existe uma maneira elegante de alterar os itens da lista durante ofor
ciclo? Não quero duplicar a lista ...
EDITAR:
Eu queria mencionar que, a propósito, emPerl ou emJava, meu uso funciona bem. Python é aquele com o comportamento único
Em Java, isso 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();
}
No Perl, isso 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+//;
}