Crear una lista de diccionarios vacíos

Resuelto Martin Flucka asked hace 11 años • 1 respuestas

Quiero crear una lista de longitud variable que contenga directorios vacíos.

n = 10 # size of list
foo = []
for _ in range(n)
    foo.append({})

¿Harías esto de la misma manera o hay algo así?

a = [{}*n]
Martin Flucka avatar Apr 05 '13 20:04 Martin Flucka
Aceptado

¡Lista de comprensiones al rescate!

foo = [{} for _ in range(n)]

Me temo que no existe una notación más corta. En Python 2 usas xrange(n)en lugar de range(n)para evitar que se materialice una lista inútil.

La alternativa [{}] * ncrea una lista de longitud ncon un solo diccionario, con ntiempos de referencia. Esto lleva a sorpresas desagradables al agregar claves al diccionario.

Martijn Pieters avatar Apr 05 '2013 13:04 Martijn Pieters