Zahlen aus einer Liste entfernen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
pywald
User
Beiträge: 45
Registriert: Mittwoch 6. Januar 2021, 15:51

Hallo,
kann man alle Zahlen aus einer Liste entfernen? Z.B. Liste: "1, d, 3, 5, a" Ausgabe: "d, a". Würde so etwas gehen?
Danke im voraus
pywald
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das kannst du zb mit isinstance prüfen.
Benutzeravatar
hyle
User
Beiträge: 96
Registriert: Sonntag 22. Dezember 2019, 23:19
Wohnort: Leipzig

Würde ich mit isdigit() machen.

Code: Alles auswählen

>>> print(liste)
['1', 'd', '3', '5', 'a']
>>>
>>> neue_liste = []
>>>
>>> for eintrag in liste:
...     if not eintrag.isdigit():
...         neue_liste.append(eintrag)
...
>>> print(neue_liste)
['d', 'a']
>>>
>>>
>>> liste = neue_liste
>>>
>>> print(liste)
['d', 'a']
>>>
Alles was wir sind ist Sand im Wind Hoschi.
nezzcarth
User
Beiträge: 1752
Registriert: Samstag 16. April 2011, 12:47

Wie liegt die Eingabe den vor? Als Liste von Strings, als Liste von Strings oder Integern, oder als einzelner String wie im Beispiel?
Benutzeravatar
sparrow
User
Beiträge: 4535
Registriert: Freitag 17. April 2009, 10:28

@pywald: In Python ist es unüblich Dinge "aus einer Liste" zu löschen. Man erstellt eine neue, die nur die Elemente enthält, die man benötigt. Daher auch das vorgehen von hyle. Da bietet sich aber auch eine list comprehension an. Und wenn nicht alle Elemente eine Zeichenkette sind, dann kann man die Prüfung, wie von __deets__ vorgeschlagen, mit isinstance machen:

Code: Alles auswählen

>>> values = [1, "d", 3, 5, "a"]
>>> selected_values = [value for value in values if isinstance(value, int)]
>>> selected_values
[1, 3, 5]
Benutzeravatar
__blackjack__
User
Beiträge: 14020
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

So etwas?

Code: Alles auswählen

In [450]: items = (item.strip() for item in "1, d, 3, 5, a".split(","))         

In [451]: ", ".join(item for item in items if not item.isdigit())               
Out[451]: 'd, a'
Falls das nicht das gesuchte ist, bräuchten wir wohl mehr Informationen was Du da tatsächlich hast und willst.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Antworten