PYTHON - mehrere Elemente einer Liste nach Index ersetzen?
Beispiel:
liste = ["a", "b", "c"]
liste[1] = "e"
print(liste)
Output:
["e", "b", "c"]
Ich möchte jetzt aber sowas in der Art machen (ich weiß, so funktioniert das nicht, mir geht es aber ums Prinzip):
liste[1, 2, 3] = "e"
Gewünschter Output:
["e", "e", "e"]
Wie mache ich das?
Ich möchte sozusagen eine kürzere Version dieses Codes haben:
liste[1] = "e"
liste[2] = "e"
liste[3] = "e"
3 Antworten
Deine Beispiele passen nicht ganz. Beispielsweise erhält man bei
liste = ["a", "b", "c"]
liste[1] = "e"
print(liste)
nicht ["e", "b", "c"], sondern ["a", "e", "c"]. Bedenke, dass das das erste Element der Liste nicht den Index 1 hat, sondern den Index 0.
============
Zur Lösung deines Problems...
Geh doch einfach die Indizes mit einer for-Schleife durch.
Beispiel:
liste = ["a", "b", "c", "d", "e", "f"]
for i in [1, 3, 4]:
liste[i] = "z"
Bei diesem Beispiel ist am Ende liste = ["a", "z", "c", "z", "z", "f"].
Kannst eine for-Schleife machen
For i in range(len(liste)) :
Liste[i] = "e"
am besten nen konkretes Beispiel, den ich hätte die selbe Antwort geschrieben ^^
hängt immer davon ab, was da rein soll und woher.
Also etwas konkreter wäre schon wichtig
liste[1, 2, 3] = "e"
Was du meinst sind die Indizes von 0 bis 2.
Mit Slices kann man sowas Ähnliches erreichen:
liste[:3] = "e", "e", "e"
Das kann man in dem Fall noch ein bisschen vereinfachen:
liste[:3] = "e" * 3
Aber das war nur ein Beispiel. Im richtigen Code sind es verschiedene, nicht aufeinander folgende Indexe. Also z.B 1, 5, -7