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