Seite 1 von 1

Zahlen aus einer Liste entfernen

Verfasst: Dienstag 2. März 2021, 16:23
von pywald
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

Re: Zahlen aus einer Liste entfernen

Verfasst: Dienstag 2. März 2021, 17:09
von __deets__
Das kannst du zb mit isinstance prüfen.

Re: Zahlen aus einer Liste entfernen

Verfasst: Dienstag 2. März 2021, 19:20
von hyle
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']
>>>

Re: Zahlen aus einer Liste entfernen

Verfasst: Dienstag 2. März 2021, 19:48
von nezzcarth
Wie liegt die Eingabe den vor? Als Liste von Strings, als Liste von Strings oder Integern, oder als einzelner String wie im Beispiel?

Re: Zahlen aus einer Liste entfernen

Verfasst: Dienstag 2. März 2021, 22:50
von sparrow
@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]

Re: Zahlen aus einer Liste entfernen

Verfasst: Dienstag 2. März 2021, 23:27
von __blackjack__
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.