Python: la forma más rápida de crear una lista de n listas
Así que me preguntaba cómo crear mejor una lista de listas en blanco:
[[],[],[]...]
Debido a cómo funciona Python con listas en la memoria, esto no funciona:
[[]]*n
Esto crea[[],[],...]
pero cada elemento es la misma lista:
d = [[]]*n
d[0].append(1)
#[[1],[1],...]
Algo así como una lista de comprensión funciona:
d = [[] for x in xrange(0,n)]
Pero esto usa la máquina virtual Python para hacer un bucle. ¿Hay alguna forma de usar un bucle implícito (aprovechando que está escrito en C)?
d = []
map(lambda n: d.append([]),xrange(0,10))
Esto es realmente más lento. :