werte aus list löschen

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
lorbinchen
User
Beiträge: 2
Registriert: Dienstag 6. Mai 2008, 19:52

Dienstag 6. Mai 2008, 20:06

Ich habe eine liste aus trings die zB so aussehen kann:
('a','b','a,'c','c')
und jetzt brauche ich eine vernünftige funktion um alle vorkommen eines bestimmten strings zu löschen
ich hab mir folgendes gebastelt:

Code: Alles auswählen

mylist= ['a','b','a','c','c']
killme= 'a'
key= 0
for i in mylist:
	if i==killme:
		mylist.pop(key)
	key+=1
allerdings habe ich irgendwie das gefühl das es nicht gerade die beste lösung ist und da in meinem skript diese funktion sehr sehr häufig gebraucht wird schlägt es sich auch negativ ind er performance nieder : (
wäre sehr dankbar für das aufzeigen eines eleganteren weges. programmiere noch nicht so lange in python.
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Dienstag 6. Mai 2008, 20:17

So eine ähnliche Frage gab es erst vor wenigen Tagen: http://www.python-forum.de/topic-14470.html.

Bei dir geht es aber noch etwas einfacher:

Code: Alles auswählen

mylist= ['a','b','a','c','c']
killme = 'a'
mylist = [for x in mylist if i!=killme]
Edit: Zum Nachlesen: Das in den eckigen Klammern ist eine "List Comprehension".
BlackJack

Dienstag 6. Mai 2008, 20:19

Und das ganze nochmal syntaktisch korrekt:

Code: Alles auswählen

In [188]: mylist = ['a', 'b', 'a', 'c', 'c']

In [189]: killme = 'a'

In [190]: mylist = [item for item in mylist if item != killme]

In [191]: mylist
Out[191]: ['b', 'c', 'c']
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Dienstag 6. Mai 2008, 20:22

Oh man, was habe ich denn da grausames zusammengeschrieben :roll: ?! Das kommt davon, wenn man den ganzen Tag Java-Code angeschaut hat :x .
lorbinchen
User
Beiträge: 2
Registriert: Dienstag 6. Mai 2008, 19:52

Dienstag 6. Mai 2008, 20:22

hui danke für die super antworten : )
leider hab ich dein erwähnten thread nicht mit der suchfunktion gefunden
-bin da
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Dienstag 6. Mai 2008, 20:26

lorbinchen hat geschrieben:leider hab ich dein erwähnten thread nicht mit der suchfunktion gefunden
Erkennt man auch nicht auf den ersten Blick, daher habe ich den Link gleich mal mit angegeben.
Antworten