170 похожих чатов

Можно ли в питоне создать пустой лист с заданным capacity?

36 ответов

12 просмотров

с чем?

Ну array есть. Не подходит? Лист можно [None] * l

зачем?

Evgeniy-Blinov Автор вопроса

Не нравятся тут лишние накладные расходы на заполнение, но запомню

Evgeniy-Blinov Автор вопроса
Andrew Deskent
зачем?

Пока без конкретных примеров, но раньше мне такая возможность бы не раз пригодилась

Evgeniy Blinov
Пока без конкретных примеров, но раньше мне такая ...

если очень надо - то можно класс накидать, который будет это уметь делать )

Evgeniy Blinov
А как?

наследуюешься от класса list и переопределяешь методы

Andrew Deskent
наследуюешься от класса list и переопределяешь мет...

Методы чего? Это ж недоступные со стороны питона части реализации.

а.. ну значит свои пишешь с проверкой длины

Np.array

Ded
Np.array

Лист?

evle
Методы чего? Это ж недоступные со стороны питона ч...

хм.. да вроде нормально переопределяются

Andrew Deskent
а.. ну значит свои пишешь с проверкой длины

Как? Способов управления памятью со стороны питоньих объектов считай и нет. (Костыляния через ctypes не в счёт). Если такое и можно сделать, то это будет какой-нибудь сишный экстеншен. Ну, либо ненадёжный трюк для обмана обычного списка.

Andrew Deskent
наследуюешься от класса list и переопределяешь мет...

Это не так работает вроде. Можно создать класс определив некоторые методы которые присущи list

Ded
Np.array

Ну-ка, как создать np.array длины 0, но с преаллоцированной памятью для 10 элементов?

Andrew Deskent
хм.. да вроде нормально переопределяются

Ты понимаешь, что такое капасити списка?

Ded
Nan его заполнить

Длина 0 как получится?

Andrew Deskent
хм.. да вроде нормально переопределяются

Речь о размере списка. В CPython это PyListObject->allocated

Tishka17
Длина 0 как получится?

Да никак нлубость какая то. Надо сразу аллоцмровать

Ded
Да никак нлубость какая то. Надо сразу аллоцмроват...

Так вопрос и был как аллоцировать сразу память под будущий размер, если пока размер будет меньше

Tishka17
Так вопрос и был как аллоцировать сразу память под...

Ну это норма, когда заранее известен итоговый размер списка, и не хочется тратить время на реаллокации

Evgeniy Blinov
Не нравятся тут лишние накладные расходы на заполн...

Отнаследуйся от списка, переопредели len. Разреши, например, только аппенд

Tishka17
Отнаследуйся от списка, переопредели len. Разреши,...

Или даже не наследник, а обертку. Что после завершения работы внутренний список отдать

Evgeniy-Blinov Автор вопроса
Evgeniy Blinov
С чего ты взял

Потому что кишки не оптимизируют. Уже тогда брать другой язык

Evgeniy-Blinov Автор вопроса
Patrick [in search of work]
Потому что кишки не оптимизируют. Уже тогда брать ...

В других языках прямое определение capacity часто в api коллекций торчит наружу. В питоне это пригодилось бы для бенчмаркинга, например.

Evgeniy Blinov
В других языках прямое определение capacity часто ...

Мне кажется такие оптимизации сделают только хуже. Питон так устроен

Evgeniy-Blinov Автор вопроса
Patrick [in search of work]
Мне кажется такие оптимизации сделают только хуже....

1. Так устроен CPython. 2. Всякие выскоуровневые штуки уже имеют эти оптимизации. Никакого криминала, "делающего питон хуже" я тут что-то не вижу. Вот с реализуемостью вопросы есть, да.

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
Так а кто может спарсить всех участников чата? Идишники
Magic
17
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
13
Ребята, а из API геокодеров (по адресам в РФ) что сейчас актуального и есть ли среди актуального бесплатное/с нормаотным лимитом запросов? ситуация простая - на сайте периоди...
Dreamer_0x01 VeseloV
8
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Карта сайта