Вопросы с тегом 'python-internals'

Как работает Python под капотом? Используйте для вопросов, касающихся (например) проектных решений и используемых внутренних структур данных и алгоритмов.
7
ответов

Почему "1000000000000000 в диапазоне (1000000000000001)" так быстро в Python 3?

Я понимаю, что функция range(), которая на самом деле тип объекта в Python 3, генерирует ее содержимое на лету, подобно генератору. В этом случае я ожидал бы, что следующая строка займет слишком много времени, потому что для определения того, будет...
задан 06 мая '15 в 18:32
7
ответов

Как работает декоратор @property?

Я хотел бы понять, как работает встроенная функция property. Меня смущает то, что property также можно использовать в качестве декоратора, но он принимает только аргументы при использовании в качестве встроенной функции, а не при использовании в кач...
задан 26 июня '13 в 23:47
2
ответов

Почему некоторые float <целочисленные сравнения в четыре раза медленнее других?

При сравнении поплавков с целыми числами некоторые пары значений занимают гораздо больше времени, чем другие значения аналогичной величины. Например: >>> import timeit >>> timeit.timeit("562949953420000.7 < 562949953421000") # ...
задан 07 мая '15 в 15:11
6
ответов

time.sleep - спит нить или процесс?

В Python для * nix, time.sleep() блокирует поток или процесс?
задан 18 сент. '08 в 17:16
2
ответов

Почему 'x' в ('x',) быстрее, чем 'x' == 'x'?

>>> timeit.timeit("'x' in ('x',)") 0.04869917374131205 >>> timeit.timeit("'x' == 'x'") 0.06144205736110564 Также работает для кортежей с несколькими элементами, обе версии кажутся линейными: >>> timeit.timeit("'x' in ('x...
задан 05 марта '15 в 21:29
16
ответов

Когда del полезно в python?

Я не могу думать о какой-либо причине, почему для python требуется ключевое слово del (и большинство языков, похоже, не имеют аналогичного ключевого слова). Например, вместо удаления переменной можно просто присвоить ей None. И при удалении из слова...
задан 27 мая '11 в 4:37
3
ответов

Являются ли словари упорядоченными в Python 3.6+?

Словари упорядочены в Python 3.6 (по крайней мере, при реализации CPython), в отличие от предыдущих воплощений. Это похоже на существенное изменение, но это лишь короткий абзац в документации. Он описывается как деталь реализации CPython, а не язык, ...
задан 11 окт. '16 в 17:59
3
ответов

Почему Python массивы замедляются?

Я ожидал, что array.array будет быстрее, чем списки, поскольку массивы вроде бы распаковываются. Однако я получаю следующий результат: In [1]: import array In [2]: L = list(range(100000000)) In [3]: A = array.array('l', range(100000000)) In [4]...
задан 21 апр. '16 в 22:16
6
ответов

Являются ли кортежи более эффективными, чем списки в Python?

Есть ли разница в производительности между кортежами и списками, когда дело доходит до создания и поиска элементов?
задан 16 сент. '08 в 4:43
4
ответов

Почему медленнее перебирать небольшую строку, чем небольшой список?

Я играл с тайм-аутом и замечал, что выполнение простого понимания списка по маленькой строке занимает больше времени, чем выполнение той же операции в списке небольших одиночных символов. Любое объяснение? Это почти в 1,35 раза больше времени. >&...
задан 26 мая '14 в 4:09
6
ответов

Почему порядок в словарях и наборах произволен?

Я не понимаю, как цикл по словарю или набор в python выполняется "произвольным" порядком. Я имею в виду, это язык программирования, поэтому все на языке должно быть на 100% определено, правильно? Python должен иметь какой-то алгоритм, который опреде...
задан 18 марта '13 в 17:59
1
ответ

Почему str.translate быстрее в Python 3.5 по сравнению с Python 3.4?

Я пытался удалить ненужные символы из заданной строки, используя text.translate() в Python 3.4. Минимальный код: import sys s = 'abcde12345@#@$#%$' mapper = dict.fromkeys(i for i in range(sys.maxunicode) if chr(i) in '@#$') print(s.translate(mapp...
задан 15 дек. '15 в 14:21
7
ответов

Как реализуется список Python?

Это связанный список, массив? Я искал вокруг и только нашел, что люди догадываются. Мои знания C недостаточно хороши, чтобы посмотреть исходный код.
задан 12 окт. '10 в 20:56
1
ответ

Почему кортеж (set ([1, "a", "b", "c", "z", "f" ])) == tuple (set ([ "a", "b", "c", " "z", "f", 1])) 85% времени с включенной хэш-рандомизацией?

Учитывая ответ Zero Piraeus на другой вопрос, мы имеем, что x = tuple(set([1, "a", "b", "c", "z", "f"])) y = tuple(set(["a", "b", "c", "z", "f", 1])) print(x == y) Печать True около 85% времени с хеш-рандомизация включена. Почему 85%?
задан 01 окт. '14 в 11:09
2
ответов

Удаляет ли Python переменную, которая используется только как возвращаемое значение?

Есть ли какая-либо принципиальная разница между следующими двумя фрагментами кода? Первый присваивает значение переменной в функции и затем возвращает эту переменную. Вторая функция просто возвращает значение напрямую. Включает ли Python их эквивале...
задан 13 апр. '17 в 14:20