2012-06-06 6 views
35

Ich verwende Python 3.2.3 und wollen die Einstellung der Standardeinstellung ändern String-Wert zurückgegeben:die Standard-String-Wert von Pythons collections.defaultdict

from collections import defaultdict 
d=defaultdict(str) 
d["NonExistent"] 

Der Rückgabewert ist ''. Wie kann ich dies ändern, so dass, wenn ein Schlüssel nicht gefunden wird, anstelle der leeren Zeichenfolge "unknown" zurückgegeben wird?

Antwort

56

Das Argument zu defaultdict ist eine Funktion (oder besser, ein Callable Object), die den Standardwert zurückgibt. Sie können also ein Lambda übergeben, das Ihren gewünschten Standardwert zurückgibt.

>>> from collections import defaultdict 
>>> d = defaultdict(lambda: 'My default') 
>>> d['junk'] 
'My default' 

Edited Lambda zu erklären:

Lambda ist nur eine Abkürzung, eine Funktion zum Definieren, ohne ihm einen Namen zu geben. Sie könnten das gleiche mit einer expliziten def tun:

>>> def myDefault(): 
...  return 'My default' 
>>>> d = defaultdict(myDefault) 
>>> d['junk'] 
'My default' 

Siehe the documentation für weitere Informationen.

Verwandte Themen