Вывод: для скоростных маньяков: используйте списочное понимание. Вызывайте только функции, если нужно. Используйте встроенные функции.
му мне было интересно, как лучше всего создать список пустых списков:
[[],[],[]...]
Из-за того, как Python работает со списками в памяти, это не работает:
[[]]*n
Это создает[[],[],...]
но каждый элемент - это тот же список:
d = [[]]*n
d[0].append(1)
#[[1],[1],...]
Что-то вроде понимания списка работает:
d = [[] for x in xrange(0,n)]
Но для этого используется виртуальная машина Python. Есть ли способ использовать неявный цикл (воспользовавшись тем, что он написан на C)?
d = []
map(lambda n: d.append([]),xrange(0,10))
Это на самом деле медленнее. :(