Attualmente sto usando un defaultdict
di Counter
contare unicamente diversi valori imprevedibili per le chiavi imprevedibili:Come utilizzare una struttura dati specifica come default_factory per un valore predefinito?
from collections import defaultdict, Counter
d = defaultdict(Counter)
d['x']['b'] += 1
d['x']['c'] += 1
print(d)
Questo mi dà il risultato previsto:
defaultdict(<class 'collections.Counter'>, {'x': Counter({'c': 1, 'b': 1})})
Ora ho bisogno di ampliare la struttura del valori nel numero defaultdict
e convertirlo in dict
con due chiavi: il precedente Counter
e uno str
:
mystruct = {
'counter': collections.Counter(),
'name': ''
}
È possibile utilizzare una struttura dati specifica (come sopra) come default_factory
in defaultdict
? Il risultato previsto sarebbe che per ogni chiave inesistente nello defaultdict
, si creerebbe una nuova chiave e un valore inizializzati con la struttura precedente.
'defaultdict (lambda: {'counter': Counter(), 'name': ''}}'? – jonrsharpe
@jonrsharpe: questo è giusto, non ho nemmeno pensato di andare in quel modo. Ti dispiacerebbe copiare questo in una risposta? – WoJ