Уведомления

Группа в Telegram: @pythonsu

#1 Май 14, 2010 13:21:45

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Как инициализировать список списков?

Zubchick
О_о'
а чем так не нравится? [] * 9
In [10]: ls = [[]] * 9

In [11]: ls
Out[11]: [[], [], [], [], [], [], [], [], []]

In [12]: ls[0].append(1)

In [13]: ls
Out[13]: [[1], [1], [1], [1], [1], [1], [1], [1], [1]]



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#2 Май 14, 2010 13:27:29

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Как инициализировать список списков?

Вот, кстати, неплохая пища для размышлений по поводу реализации графов в Python: http://wiki.python.org/moin/PythonGraphApi



Офлайн

#3 Май 14, 2010 13:38:03

alexx11
От:
Зарегистрирован: 2010-05-13
Сообщения: 208
Репутация: +  0  -
Профиль   Отправить e-mail  

Как инициализировать список списков?

Ed
Вот, кстати, неплохая пища для размышлений по поводу реализации графов в Python: http://wiki.python.org/moin/PythonGraphApi
Спасибо гляну, но у меня такая задача что граф, очень компактненько в такой словарик помещается, т.е. любое дополнение уже излишний наворот.

P.S. А как лучше строки в питоне складывать? (“лучше” читай быстрее)
P.P.S.: Сам нашёл
This optimization is both version and implementation dependent. For performance sensitive code, it is preferable to use the str.join() method which assures consistent linear concatenation performance across versions and implementations.



Отредактировано (Май 14, 2010 13:50:21)

Офлайн

#4 Май 14, 2010 13:55:20

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Как инициализировать список списков?

P.S. А как лучше строки в питоне складывать? (“лучше” читай быстрее)
Глядя на ваш код возникает вопрос ‘а нужно ли их вообще складывать?’. В чем необходимость прибавления ‘value: ’ ко всем ключам? Если это делается только для того, чтобы отличить проинициализированные ключи от других, то наверняка найдутся менее затратные способы это сделать, чем использование явно небыстрого сложения строк.



Офлайн

#5 Май 14, 2010 14:04:44

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Как инициализировать список списков?

Попробуй для инициализации использовать izip, imap и repeat, возможно удастся выиграть немного.

..bw



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version