Einträge in Dictionarys 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.
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main
Kontaktdaten:

Einträge in Dictionarys löschen

Beitragvon Markus12 » Montag 19. März 2007, 20:01

Hi,
ich hab eine Frage:
Weiß jemand wie man bei dicts einzelne Einträge löscht?
Weiß es nur bei lists... :(

Bitte um Hilfe :D
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Beitragvon rayo » Montag 19. März 2007, 20:04

Hi

So wie bei Listen:

Code: Alles auswählen

del d[key]
del l[index]


Gruss
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Beitragvon Masaru » Montag 19. März 2007, 23:54

Huigh ... anstelle des del bevorzuge ich eher:

Code: Alles auswählen

>>> d = { 'eins' : 1, 'zwei' : 2 }
>>> d
{'eins': 1, 'zwei': 2}
>>> x = d.pop('eins')
>>> d
{'zwei': 2}


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.
BlackJack

Beitragvon BlackJack » Dienstag 20. März 2007, 00:37

Ich würde die Variante bevorzugen die besser passt. Wenn man das Objekt nicht benötigt, dann ist ``del`` die passendere Alternative.
Benutzeravatar
Michael Schneider
User
Beiträge: 566
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Bremen
Kontaktdaten:

Beitragvon Michael Schneider » Dienstag 20. März 2007, 08:35

Masaru hat geschrieben:Auch bei Listen würde ich die pop() Methode dem del vorziehen.

Moin,

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 ...
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Dienstag 20. März 2007, 09:40

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
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitragvon Markus12 » Dienstag 20. März 2007, 16:33

Danke, hat mit der del funktioniert :D

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder