sto usando Python dizionari v2.7, uno nidificato all'interno di un altro come questo:Come inizializzare dizionari annidati in Python
def example(format_str, year, value):
format_to_year_to_value_dict = {}
# In the actual code there are many format_str and year values,
# not just the one inserted here.
if not format_str in format_to_year_to_value_dict:
format_to_year_to_value_dict[format_str] = {}
format_to_year_to_value_dict[format_str][year] = value
sembra un po 'goffo per inizializzare il primo dizionario di livello con un dizionario vuoto prima inserito nel dizionario di secondo livello. C'è un modo per impostare un valore e allo stesso tempo creare un dizionario al primo livello se non ce n'è uno già lì? Immagino che qualcosa di simile a questo per evitare l'inizializzazione condizionale:
def example(format_str, year, value):
format_to_year_to_value_dict = {}
add_dict_value(format_to_year_to_value_dict[format_str], year, value)
Inoltre, che cosa se il dict interna dovrebbe stesso inizializzare a un elenco?
def example(format_str, year, value):
format_to_year_to_value_dict = {}
# In the actual code there are many format_str and year values,
# not just the one inserted here.
if not format_str in format_to_year_to_value_dict:
format_to_year_to_value_dict[format_str] = {}
if not year in format_to_year_to_value_dict[format_str]:
format_to_year_to_value_dict[format_str][year] = []
format_to_year_to_value_dict[format_str][year].append(value)
C'è qualcosa come defaultdict per gli elenchi nel caso di dettatura interna? – WilliamKF
Stavo semplicemente modificando quello in. Hai solo bisogno di una funzione che restituisce 'defaultdict (list)' e non solo '{}' per le chiavi mancanti. –