Кортежи против списков. Почему кортежи быстрее

Ты, возможно, замечал, что кортежи (tuple) работают быстрее, чем списки (list). Но с виду они такие похожие — и те, и другие хранят несколько элементов.

Кортежи неизменяемы (immutable), а списки изменяемы (mutable). Это значит, что элементы кортежа нельзя менять после его создания, а вот со списками можно делать что угодно, добавлять, удалять и изменять элементы. Из-за этого у списков есть дополнительная «нагрузка» — им нужно хранить данные о том, как управлять изменениями. Например, списки выделяют больше памяти, чтобы можно было быстро добавлять новые элементы. Кортежам же не нужно тратить ресурсы на такие операции, что делает их легче и быстрее.

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

Поскольку кортежи фиксированы, Python может оптимизировать работу с ними на уровне машинного кода. Это делает их немного быстрее при обращении к элементам, поскольку не нужно учитывать возможные изменения структуры данных.

Используй кортежи, если ты знаешь, что данные не будут изменяться. Это ускорит работу программы и сэкономит память. Используй списки, если данные могут изменяться (добавление, удаление, изменение элементов).

Давай посмотрим на простой пример, где создаем список и кортеж с одинаковыми данными и измерим время доступа к элементам. Этот код показывает, что доступ к элементам кортежа происходит немного быстрее, чем к элементам списка, хотя разница может быть незначительной на малых объёмах данных. Но на больших объёмах — это сэкономит драгоценные миллисекунды.

Кортежи против списков. Почему кортежи быстрее | Сетка — новая социальная сеть от hh.ru
repost

214

input message

напишите коммент

еще контент автора

еще контент автора

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь