Vermutlich. Ich grübel und probiere gerade, klappt noch nicht.sparrow hat geschrieben: Montag 13. Dezember 2021, 13:17 Jetzt machst du das aber in 3 verschiedenen Schleifen.
Das könnte man auch in einer einzigen tun.
Ich versuche es weiter
Vermutlich. Ich grübel und probiere gerade, klappt noch nicht.sparrow hat geschrieben: Montag 13. Dezember 2021, 13:17 Jetzt machst du das aber in 3 verschiedenen Schleifen.
Das könnte man auch in einer einzigen tun.
sparrow hat geschrieben: Montag 13. Dezember 2021, 14:21 andie39: Als Tipp: Man muss nicht jeden Zwischenschritt an einen Namen binden. Wenn str.strip() einen geänderten str zurück gibt, kann man darauf natürlich die nächste Funktion aufrufen. a.replace("x", "y").strip("@") ruft auf a erst replace mit den Parametern "x" und "y" auf und auf das Ergebnis strip mit dem Parameter "@".
Und wenn du dir jetzt anschaust, wie list comprehensions funktionieren, kann man das in einer einzigen Zeile lösen.
Code: Alles auswählen
liste = ["13,25€", "12,50€","105,60€","45,87€"]
clear_euro = []
for entry in liste:
stripped_entry = entry.rstrip("€")
clear_euro.append(stripped_entry)
no_commas = []
for entry in clear_euro:
no_comma = entry.replace(",", ".")
no_commas.append(no_comma)
numbers = []
for entry in no_commas:
number = float(entry)
numbers.append(number)
print(numbers)
Code: Alles auswählen
liste = ["13,25€", "12,50€","105,60€","45,87€"]
clear_euro = [entry.rstrip("€") for entry in liste]
clear_comma = [entry.replace(",", ".") for entry in clear_euro]
numbers = [float(entry) for entry in clear_comma]
print(numbers)
Code: Alles auswählen
liste = ["13,25€", "12,50€","105,60€","45,87€"]
numbers = [float(entry.rstrip("€").replace(",", ".")) for entry in liste]
print(numbers)
Code: Alles auswählen
neue_liste = []
for element in alte_liste:
element = mach_was(element)
neue_liste.append(element)
noch_eine_neue_liste = []
for element in neue_liste:
element = mach_noch_was(element)
noch_eine_neue_liste.append(element)
hoffentlich_die_letzte_neue_liste = []
for element in noch_eine_neue_liste:
element = nachpolieren_damit_es_schoen_glaenzt(element)
hoffentlich_die_letzte_neue_liste.append(element)
# =>
neue_liste = []
for element in alte_liste:
element = mach_was(element)
element = mach_noch_was(element)
element = nachpolieren_damit_es_schoen_glaenzt(element)
neue_liste.append(element)
Ah, jetzt kommen wir der Sache näher, ja so ähnlich hatte ich das ja auch.kbr hat geschrieben: Montag 13. Dezember 2021, 14:37 @andie39: Der Ansatz mit den drei Schleifen ist erst einmal nicht schlecht, denn so kannst Du Schritt für Schritt vorgehen:
Das ist für Anfänger leicht zu verstehen. Mit etwas Erfahrung erkennt man, das sich jede dieser Schleifen in kompakterer Form als List-Comprehension schreiben lässt:Code: Alles auswählen
liste = ["13,25€", "12,50€","105,60€","45,87€"] clear_euro = [] for entry in liste: stripped_entry = entry.rstrip("€") clear_euro.append(stripped_entry) no_commas = [] for entry in clear_euro: no_comma = entry.replace(",", ".") no_commas.append(no_comma) numbers = [] for entry in no_commas: number = float(entry) numbers.append(number) print(numbers)
Das daraus abgeleitet verstehe ich auch noch.kbr hat geschrieben: Montag 13. Dezember 2021, 14:37Code: Alles auswählen
liste = ["13,25€", "12,50€","105,60€","45,87€"] clear_euro = [entry.rstrip("€") for entry in liste] clear_comma = [entry.replace(",", ".") for entry in clear_euro] numbers = [float(entry) for entry in clear_comma] print(numbers)