43 Stimmen

Einstellung des Standard-String-Wertes von Pythons collections.defaultdict

Ich verwende Python 3.2.3 und möchte den standardmäßig zurückgegebenen String-Wert ändern:

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

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

68voto

BrenBarn Punkte 228691

Das Argument für defaultdict ist eine Funktion (oder vielmehr ein aufrufbares Objekt), 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'

Bearbeitet, um lambda zu erklären:

lambda ist nur eine Abkürzung für die Definition einer Funktion, ohne ihr einen Namen zu geben. Sie könnten dasselbe mit einer expliziten def:

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

Siehe die Dokumentation für weitere Informationen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X