![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| alex_smirnov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 22.6.2007 Где: Санкт-Петербург Репутация: 2 Всего: 4 |
Уважаемые Питон программисты,
расскажите пожалуйста, какие процессы будут происходить в памяти, если, например: я создал большой список (словарь), а потом в цикле удалил каждый второй элемент. т.е. как будет производиться размещение списка в памяти с каждой последующей итерацией? Если можно по-подробней, спасибо! |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 2 Всего: 154 |
элементы будут удалятся из списка, но то, когда они будут удалены, будет зависеть от того, используются они где-нибудь еще или нет. списки |
|||
|
||||
| alex_smirnov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 22.6.2007 Где: Санкт-Петербург Репутация: 2 Всего: 4 |
Спасибо, конечно, что напомнили, что такое связанный список
Подтвердите логику. Смотрите, пусть я удаляю середину списка. И, как я понимаю, то указатель последнего элемента первой части будет указывать на первый элемент последней части списка. А удаляемая мной середина затрется. А серьезных перемещений в памяти происходить не будет. Так? |
|||
|
||||
| Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 2 Всего: 154 |
да, но тебя это не касается, как там реализован список - дело разработчиков языка, получить доступ к этим указателям ты не сможешь почитай про сборку мусора в Python-e, будут удалены элементы из середины - вообще, или только из списка, зависит от того где они еще используются
а откуда им взяться |
||||
|
|||||
| alex_smirnov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 22.6.2007 Где: Санкт-Петербург Репутация: 2 Всего: 4 |
все понятненько, спасибо!
PS: тема закрыта. |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 10 Всего: 173 |
Гм, вообще-то тип данных list в Питоне — это не связанный список. Это массив, по сути. См. Include/listobject.h и Objects/listobject.c в исходниках интерпретатора. Поэтому при удалении элементов из середины списка будут происходить перемещения памяти. Но в list, конечно, хранятся только ссылки на объекты.
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 2 Всего: 154 |
ну и новость |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 10 Всего: 173 |
Да, но поскольку в Питоне ничего, кроме этих самых указателей и нет, уточнение излишне -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
![]()
|
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |