+1 Punkt
86 Aufrufe

Ich übe gerade etwas Python bzw. stehe mit folgender Aufgabe vor einem Problem.

Ich soll innerhalb einer Liste ein Element ändern was mehrfach vorkommen könnte. Bsp:

liste = [2,4,6,8,10,12,12,4,8]

Hier soll innerhalb der Liste, also in-Place eine Änderung der ersten 12 zur 2 durchgeführt werden. Mein Problem: Die Aufgabenstellung sieht vor, das nun nur über for element in liste iteriert wird, nicht über den Index.

Ich soll nun also direkt innerhalb der Liste, mit dieser For-Schleife ein Element ändern, ohne dabei eine Kopie der Liste zu erstellen.

Ich bin dankbar für jeden Ansatz, sollte das überhaupt möglich sein :)

von

1 Antwort

+1 Punkt

Das ist meines Wissens nach nicht möglich.

Man muss auf den Index zurückgreifen:

liste = [2,4,6,8,10,12,12,4,8]

for index, i in enumerate(liste):
  if i==12:
    liste[index] = 2
    break

print(liste)



Grundsätzlich sind int in Python unveränderlich. Daher ist ein for i in liste und dann z. B. i = 2 nicht möglich. In diesem Artikel erfährt man im Detail, warum Indizes benötigt werden: https://softwareengineering.stackexchange.com/q/341179/313824

von  –  ❤ Bedanken per Paypal

Danke für die Antwort und den Link, darüber werde ich gleich mal brüten.

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

0 Daumen
1 Antwort
0 Daumen
0 Antworten
0 Daumen
0 Antworten

Willkommen bei der Stacklounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community
...