2014-06-30 4 views
6

Gibt es eine einfache Möglichkeit, eine Eigenschaft eines Wörterbuchs in Python zu löschen, wenn es möglich ist, dass die Eigenschaft nicht vorhanden sein kann?Löschen Sie eine Eigenschaft eines Wörterbuchs in Python, die möglicherweise nicht vorhanden ist

wenn die del Anweisung verwendet wird, ist ein KeyError das Ergebnis:

a = {} 
del a['foo'] 
>>>KeyError: 'foo' 

Es ist ein wenig wortreich ein zu verwenden, wenn Anweisung und Sie haben 'foo' und a zweimal eingeben:

a = {} 
if 'foo' in a: 
    del a['foo'] 

Auf der Suche nach etwas ähnlich wie dict.get(), die standardmäßig auf einen None Wert, wenn die Eigenschaft nicht vorhanden ist:

a = {} 
a.get('foo') # Returns None, does not raise error 

Antwort

9

Sie dict.pop verwenden können, die Sie einen Standardwert angeben können, zurück, wenn der Schlüssel nicht existiert:

>>> d = {1:1, 2:2} 
>>> d.pop(1, None) 
1 
>>> d 
{2: 2} 
>>> d.pop(3, None) # No error is thrown 
>>> d 
{2: 2} 
>>> 
Verwandte Themen