Jeśli mam, d=dict(zip(range(1,10),range(50,61)))
jak mogę zbudować collections.defaultdict
z dict
?
defaultdict
Wydaje się, że jedynym argumentem jest funkcja fabryczna, czy będę musiał zainicjować, a następnie przejść przez oryginał d
i zaktualizować defaultdict
?
python
dictionary
Karthick
źródło
źródło
default_dict = defaultdict(None,{"a":1,"b":{"c":3}})
na przykładdefault_dict["e"]
wywołuje KeyError zamiast zwracać NoneNone
nie oznacza, że wygeneruje None dla nieznanych kluczy, w ogóle go nie użyje. Musisz to zrobićdefaultdict(lambda: None, {....})
Możesz skonstruować defaultdict z dict, przekazując dict jako drugi argument.
from collections import defaultdict d1 = {'foo': 17} d2 = defaultdict(int, d1) print(d2['foo']) ## should print 17 print(d2['bar']) ## should print 1 (default int val )
źródło
defaultdict
jest metodą z kolekcji, która nie zwraca błędu klucza, gdy element nie jest obecny.źródło