Как Большой Список Python может Добраться?

Если вы хотите использовать SVG в своем приложении, вы должны использовать плагин nativescript-svg .

Чтобы использовать SVG на заставке, вам нужно обновить splash_screen.xml из App_Resources/Android/src/main/res/drawable-nodpi.

Вы можете заменить значение по умолчанию item на что-то вроде ниже


108
задан Shayn 26 February 2019 в 08:34
поделиться

6 ответов

Согласно исходному коду , максимальный размер списка составляет PY_SSIZE_T_MAX / sizeof (PyObject *) .

PY_SSIZE_T_MAX определено в pyport.h как ((size_t) -1) >> 1

В обычной 32-битной системе это (4294967295/2) / 4 или 536870912.

] Следовательно, максимальный размер списка Python в 32-битной системе составляет 536 870 912 элементов.

Пока количество элементов у вас равно или меньше этого, все функции списка должны работать правильно.

178
ответ дан 24 November 2019 в 03:28
поделиться

Конечно, все в порядке. На самом деле вы можете легко убедиться в этом сами:

l = range(12000)
l = sorted(l, reverse=True)

Выполнение этих строк на моей машине заняло:

real    0m0.036s
user    0m0.024s
sys  0m0.004s

Но конечно, как говорили все остальные. Чем больше массив, тем медленнее будут операции.

27
ответ дан 24 November 2019 в 03:28
поделиться

В обычном коде я создал списки с миллионами элементов. Я считаю, что реализация списков в Python ограничена только объемом памяти в вашей системе.

Кроме того, методы / функции списка должны продолжать работать, несмотря на размер списка.

Если вам важна производительность, возможно, стоит изучить библиотеку, например NumPy .

6
ответ дан 24 November 2019 в 03:28
поделиться

12000 элементов - это ничто в Python ... и на самом деле число элементов может доходить настолько далеко, насколько интерпретатор Python имеет память в вашей системе.

5
ответ дан 24 November 2019 в 03:28
поделиться

Я бы сказал, что вы ограничены только общим объемом доступной оперативной памяти. Очевидно, что чем больше массив, тем больше операций над ним потребуется.

1
ответ дан 24 November 2019 в 03:28
поделиться

Характеристики производительности для списков описаны на Effbot.

Списки Python фактически реализованы как векторные для быстрого произвольного доступа, поэтому контейнер в основном будет содержать столько элементов, сколько есть места для в памяти. (Вам нужно место для указателей, содержащихся в списке, а также место в памяти для объекта (ов), на который указывает.)

Добавляется O (1) (амортизированная постоянная сложность), однако, вставка / удаление из середины последовательности потребует переупорядочения O (n) (линейная сложность), которое будет медленнее по мере увеличения количества элементов в вашем списке.

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

5
ответ дан 24 November 2019 в 03:28
поделиться
Другие вопросы по тегам:

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