@Sushkov
">alert("yohoho")

Зачем нужны кортежи?

Начал изучать python у тут сразу возник вопрос. Зачем нужны кортежи, когда есть словари у которых побольше функционала? И где они используются?
  • Вопрос задан
  • 4142 просмотра
Пригласить эксперта
Ответы на вопрос 4
Кортежи неизменяемы и от них можно найти хеш, если они, конечно, сами не содержат изменяемых типов.
Из-за этого кортежи более легковесны, а возможность найти хеш позволяет использовать кортежи в виде ключей для словарей.

Например, можно хранить содержимое некоторых координат массива
d = {(0, 1): 'X', (2, 3): 'O'}

Теперь легко обойти все содержимое:
for x, y in d:
    print(x, y, d[x, y])
Ответ написан
Комментировать
lightarhont
@lightarhont
python/php developer
Кортежи это аналог списка, а не словаря... В основном они дают скорость работы в обмен на меньшую гибкость и больше ничего. Если вы используете кортежи там где им быть уместно значит вы молодец!
Ответ написан
Комментировать
@TrainHard
кортеж защищен от изменений
Ответ написан
angru
@angru
В дополнение ко всему вышеперечисленному, с архитектурной точки зрения, логичнее и безопаснее представлять наборы данных как список кортежей, они и быстрее, как уже сказали, и их нельзя случайно изменить и что-нибудь сломать. А еще есть такая штука, как namedtuple, это вообще киллер фича, отличная альтернатива классам, т.е., когда не нужна вся сила классов, лучше использовать именованные кортежи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы