т.е. что-то типа того:
c=[[]for k in range(9)]
c=[[]for k in range(9)]
Evgага, спасибо. Ну списки пустые делаются что б их потом заполнить. А вообще мне надо для инициализации словарика, в котором будет расти дерево, даже не совсем дерево, скорей ветвистый ствол графа.
c = list(list() for k in range(9))
ток зачем, столько пустых списков?)
alexx11Может это подойдет http://docs.python.org/library/collections.html#collections.defaultdict ?
А вообще мне надо для инициализации словарика, в котором будет расти дерево
>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> d['test0'].append(0)
>> d['test1'].append(1)
>>> print d['test0'], d['test1']
[0] [1]
EdСпасибо за ссылку, сравнил - функциональность полностью устраивает, но возник вопрос что же выбрать?
Может это подойдет http://docs.python.org/library/collections.html#collections.defaultdict ?
keys = ["aa", "bb", "cc"]
d = dict(zip(keys, [[]for k in range(len(keys))]))
for k in keys:
d[k].append("value: " + k)
from collections import defaultdict
keys = ["aa", "bb", "cc"]
d = defaultdict(list)
for k in keys:
d[k].append("value: " + k)
>>> l = map(apply, [list] * 9)
>>> l
[[], [], [], [], [], [], [], [], []]
>>> l[0] += ['foo']
>>> l[-1] += ['bar']
>>> l
[['foo'], [], [], [], [], [], [], [], ['bar']]
alexx11Смотря что вам вообще нужно. Если вы опишете задачу, то возможно, что выбор будет совсем другой. Смею предположить, что задача-то у вас наверняка не в инициализации словаря заключается.
Спасибо за ссылку, сравнил - функциональность полностью устраивает, но возник вопрос что же выбрать?
EdКак я уже говорил в словарике граф (тыч 10 вершин), причём достаточно связанный, т.е. критично время доступа к словарю. Тесты показали первый вариант выигрывает в разы именно в скорости доступа, но что парадоксально сам код инициализации d = dict(zip(keys, [for k in range(len(keys))])), работает медленней чем весь второй вариант проверил на списке размером 10^6.
что задача-то у вас наверняка не в инициализации словаря заключается.
bwВариант 3
Мой извращенский вариант:
keys = ["aa", "bb", "cc"]
d = dict(zip(keys, map(apply, [list]*len(keys))))
for k in keys:
d[k].append("value: " + k)
>>> l = map(apply, [list] * 9)
>>> l
[[], [], [], [], [], [], [], [], []]