Listenelemente entfernen, die Suchmuster entsprechen

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.
JoHo
User
Beiträge: 5
Registriert: Montag 18. April 2005, 16:43
Kontaktdaten:

Listenelemente entfernen, die Suchmuster entsprechen

Beitragvon JoHo » Mittwoch 3. August 2005, 16:50

Hallo!
Habe folgende Liste:

Code: Alles auswählen

'abcdef_irgendwas1','abcdef_irgendwas2','abcdef_irgendwas3','abcdef_irgendwas4','mnkopq_irgendwas5','mnkopq_irgendwas6','mnkopq_irgendwas7']

nun möchte ich alle Listenelemente entfernen, die mit "abcdef" beginnen.

Kann mir bitte jemand schreiben wie das geht? Hab mir ein konstrukt mit einer Schleife gebaut, aber das schlägt daran fehl, dass ja die Indices sich verschieben.

Schon mal Danke!!

Gruß JoHo
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Listenelemente entfernen, die Suchmuster entsprechen

Beitragvon gerold » Mittwoch 3. August 2005, 17:09

JoHo hat geschrieben:Kann mir bitte jemand schreiben wie das geht? Hab mir ein konstrukt mit einer Schleife gebaut, aber das schlägt daran fehl, dass ja die Indices sich verschieben.

Hi JoHo!

Code: Alles auswählen

>>> l = ['abcdef_irgendwas1','abcdef_irgendwas2','abcdef_irgendwas3','abcdef_irgendwas4','mnkopq_irgendwas5','mnkopq_irgendwas6','mnkopq_irgendwas7']
>>> print [ item for item in l if not item.startswith("abcdef") ]
['mnkopq_irgendwas5', 'mnkopq_irgendwas6', 'mnkopq_irgendwas7']
>>>


mfg
Gerold
:-)
Zuletzt geändert von gerold am Mittwoch 3. August 2005, 17:16, insgesamt 2-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 3. August 2005, 17:10

Einfach:

Code: Alles auswählen

In [4]: l = ['abcdef_irgendwas1','abcdef_irgendwas2','abcdef_irgendwas3','abcdef_irgendwas4','mnkopq_irgendwas5','mnkopq_irgendwas6','mnkopq_irgendwas7']

In [5]: l2 = [element for element in l if not element.startswith('abcdef')]

In [6]: l2
Out[6]: ['mnkopq_irgendwas5', 'mnkopq_irgendwas6', 'mnkopq_irgendwas7']


Edit: Zu langsam ;)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Gast

Beitragvon Gast » Mittwoch 3. August 2005, 19:14

Vielen vielen Dank euch beiden,
geht ja echt einfach!
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Mittwoch 3. August 2005, 22:32

Eine weitere Möglichkeit:

Code: Alles auswählen

l2 = filter(lambda x:not x.startswith("abcdef"), l)

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]