Python: maneira mais rápida de criar uma lista de n listas
ntão eu queria saber como criar uma lista de listas em branco:
[[],[],[]...]
Por causa de como o Python trabalha com listas na memória, isso não funciona:
[[]]*n
Isso cria[[],[],...]
mas cada elemento é a mesma lista:
d = [[]]*n
d[0].append(1)
#[[1],[1],...]
Algo como uma compreensão de lista funciona:
d = [[] for x in xrange(0,n)]
Mas isso usa a VM Python para loop. Existe alguma maneira de usar um loop implícito (aproveitando a escrita em C
d = []
map(lambda n: d.append([]),xrange(0,10))
Este é realmente mais lento. :