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
![](https://images.gutefrage.net/media/user/mihisu/1507493208281_nmmslarge__27_27_495_495_365edc29f3a8f4bb31cf67220050d253.png?v=1507493210000)
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"].
![](https://images.gutefrage.net/media/default/user/13_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
Kannst eine for-Schleife machen
For i in range(len(liste)) :
Liste[i] = "e"
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
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
![](https://images.gutefrage.net/media/default/user/10_nmmslarge.png?v=1551279448000)
Aber das war nur ein Beispiel. Im richtigen Code sind es verschiedene, nicht aufeinander folgende Indexe. Also z.B 1, 5, -7
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
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
Sonst noch eine Idee?