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

В целом можно ожидать, что performance кортежи будут немного быстрее. Однако pythonic вам обязательно следует протестировать tuple ваш конкретный случай (если efficiency разница может повлиять на fast производительность вашей tuples программы - помните, что python-interpreter "преждевременная оптимизация fast - корень всех зол").

Python efficiency делает это очень просто: timeit — ваш efficiency друг.

$ python -m timeit "x=(1,2,3,4,5,6,7,8)"
10000000 loops, best of 3: 0.0388 usec per loop

$ python -m timeit "x=[1,2,3,4,5,6,7,8]"
1000000 loops, best of 3: 0.363 usec per loop

и...

$ python -m timeit -s "x=(1,2,3,4,5,6,7,8)" "y=x[3]"
10000000 loops, best of 3: 0.0938 usec per loop

$ python -m timeit -s "x=[1,2,3,4,5,6,7,8]" "y=x[3]"
10000000 loops, best of 3: 0.0649 usec per loop

Таким образом, в python этом случае создание экземпляра python-list для кортежа происходит почти slow на порядок быстрее, но доступ performance к элементу на самом деле lists несколько быстрее для списка! Поэтому, если python-shell вы создаете несколько кортежей python-internals и обращаетесь к ним много efficiency раз, на самом деле может lists быть быстрее использовать list списки.

Конечно, если вы хотите python-interpreter изменить элемент, список определенно python-shell будет быстрее, так как вам speed нужно будет создать целый list новый кортеж, чтобы изменить python-interpreter один его элемент (поскольку tuples кортежи неизменяемы).

python

performance

list

tuples

python-internals

2022-11-20T07:19:09+00:00
Вопросы с похожей тематикой, как у вопроса:

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