Tengo un diccionario de listas y debería inicializarse con las claves predeterminadas. Supongo que el siguiente código no es bueno (quiero decir, funciona, pero no siento que esté escrito de forma pitónica):
d = {'a' : [], 'b' : [], 'c' : []} Así que quiero usar algo más pitónico como defaultict :
d = defaultdict(list)Sin embargo, todos los tutoriales que he visto establecen dinámicamente las nuevas claves. Pero en mi caso todas las claves deberían estar definidas desde el principio. Estoy analizando otras estructuras de datos y agrego valores a mi diccionario solo si la clave específica en la estructura también se encuentra en mi diccionario.
¿Cómo puedo configurar las claves predeterminadas?
De los comentarios, asumo que desea un diccionario que cumpla con las siguientes condiciones:
@Aaron_lab tiene el método correcto, pero hay una forma un poco más limpia:
d = defaultdict(list,{ k:[] for k in ('a','b','c') })Eso ya es razonable, pero puede acortarlo un poco con una comprensión de dictado que usa una lista estándar de claves.
>>> standard_keys = ['a', 'b', 'c'] >>> d1 = {key:[] for key in standard_keys} >>> d2 = {key:[] for key in standard_keys} >>> ...Si va a preinicializar en listas vacías, no es necesario un dictado predeterminado . La simple comprensión de dictados hace el trabajo de forma clara y limpia:
>>> {k : [] for k in ['a', 'b', 'c']} {'a': [], 'b': [], 'c': []}