Crear una lista de diccionarios vacíos.

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] 

Lista de comprensiones al rescate!

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

No hay notación más corta, me temo. En Python 2 usas xrange(n) lugar de range(n) para evitar materializar una lista inútil.

La alternativa, [{}] * n crea una lista de longitud n con un solo diccionario, referenciado n veces. Esto lleva a sorpresas desagradables al agregar claves al diccionario.