Hi,
ich hab eine Frage:
Weiß jemand wie man bei dicts einzelne Einträge löscht?
Weiß es nur bei lists...
Bitte um Hilfe
Einträge in Dictionarys löschen
Huigh ... anstelle des del bevorzuge ich eher:
Die Methode dict.pop(<key>) nimmt den angebenen Schlüssel und Wert aus dem Dictionary, und liefert den Wert zudem zurück.
In meinem Beispiel "könnte" man mit der Variable x (dem Wert hinter dem ursprünglichen Dictionary Schlüssels) weiterarbeiten ... muss es aber natürlich nicht .
Auch bei Listen würde ich die pop() Methode dem del vorziehen.
Code: Alles auswählen
>>> d = { 'eins' : 1, 'zwei' : 2 }
>>> d
{'eins': 1, 'zwei': 2}
>>> x = d.pop('eins')
>>> d
{'zwei': 2}
In meinem Beispiel "könnte" man mit der Variable x (dem Wert hinter dem ursprünglichen Dictionary Schlüssels) weiterarbeiten ... muss es aber natürlich nicht .
Auch bei Listen würde ich die pop() Methode dem del vorziehen.
Ich würde die Variante bevorzugen die besser passt. Wenn man das Objekt nicht benötigt, dann ist ``del`` die passendere Alternative.
- Michael Schneider
- User
- Beiträge: 569
- Registriert: Samstag 8. April 2006, 12:31
- Wohnort: Brandenburg
Moin,Masaru hat geschrieben: Auch bei Listen würde ich die pop() Methode dem del vorziehen.
wenn ich mich recht erinnere werden normale Listen nach dem LIFO-Prinzip behandelt und meinen Erfahrungen gemäß bremst diese Listenverkleinerung mein System umso mehr aus, je weiter vorn das zu poppende Element steht. Darum nimmt man ja statt pop(0) auch besser queue.
Also meine Frage: kommt das rein performancetechnisch wirklich auf dasselbe raus - von der Rückgabe des Wertes mal abgesehen?
Grüße,
Michel
Diese Nachricht zersört sich in 5 Sekunden selbst ...
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
del ist etwas schneller. Und del kann auch mehr:
Code: Alles auswählen
>>> l = list(range(10))
>>> del l[2:4]
>>> l
[0, 1, 4, 5, 6, 7, 8, 9]
>>> del l[4:]
>>> l
[0, 1, 4, 5]
TUFKAB – the user formerly known as blackbird