Python: Listenelemente werden in der for-Schleife nicht geändert

Ich war schockiert, als der folgende Code nicht das tat, was ich erwartet hatte:

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()

Ich habe natürlich erwartet, dass jeder Punkt in der Liste wird"stripped"in diesem Fall frei von dem Nachlauf sein'\n' char, aber es hat nicht ...

print lines_list

Die Ausgabe:

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

Wie Sie sich vorstellen können, ist meine Frage, ob es eine elegante Möglichkeit gibt, die Listenelemente während des Vorgangs zu ändernfor Schleife? Ich möchte die Liste nicht duplizieren ...

BEARBEITEN:

Ich wollte das übrigens erwähnenPerl oder inJavafunktioniert meine verwendung gut Python ist derjenige mit dem einzigartigen Verhalten

In Java wird dies funktionieren:

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

In Perl wird dies funktionieren:

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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage