Ситуация с списком по сравнению с кортежем в Python

Есть ли ситуация, когда использование списка приводит к ошибке, и вместо этого вы должны использовать кортеж?

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

3 Solutions collect form web for “Ситуация с списком по сравнению с кортежем в Python”

Вы можете использовать кортежи как словарные ключи, потому что они неизменяемы, но вы не можете использовать списки. Например:

d = {(1, 2): 'a', (3, 8, 1): 'b'} # Valid. d = {[1, 2]: 'a', [3, 8, 1]: 'b'} # Error. 

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

Таким образом, в дополнение к уже заданному ключевому ответу словаря, пара других вещей, которые будут работать для кортежей, но не списков:

 >>> hash((1, 2)) 3713081631934410656 >>> set([(1, 2), (2, 3, 4), (1, 2)]) set([(1, 2), (2, 3, 4)]) 

В строках форматирования кортежи являются обязательными:

 "You have %s new %s" % ('5', 'mails') # must be a tuple, not a list! 

Использование списка в этом примере приводит к ошибке «Недостаточно аргументов для строки формата», потому что список рассматривается как один аргумент. Странно, но верно.

  • Список автозагрузки в Python?
  • Как перенести последний элемент в список на передний план в python?
  • Python: удаление элемента списка при повторении списка
  • изменение выхода
  • Транспонирование вложенного списка в python
  • Pythonic способ разбить список после элементов, для которых данный предикат является истинным
  • Списки разыменования внутри списка в Python
  • Как вы знаете индекс элемента, который указан в подпункте
  • Список Python () и
  • Как сгладить кортеж в python
  • Удалить много элементов списка (python)
  •  
    Interesting Posts for Van-Lav

    Возвращение массива JSON из представления Django в шаблон

    Как отслеживать предыдущий столбец записи даты в кадре данных pandas?

    Альтернатива Python для Java-апплета?

    Python: как мне форматировать числа для фиксированной ширины?

    Python разделяет строку на кавычки

    лучший способ конвертировать этот html-файл в xml-файл с помощью python

    Python: передача переменных в методы Wordnet Synsets в NLTK

    Инициализация переменной подкласса в Python

    Django: обратные аксессоры для внешних ключей

    Получение индекса возвращаемого значения max или min с помощью max () / min () в списке

    Как передать аргументы командной строки Python из VS в режиме отладки?

    многопроцессорность: совместное использование большого объекта только для чтения между процессами?

    прямоугольник opencv с пунктирными или пунктирными линиями

    Удалить строки не .isin ('X')

    Чистые виртуальные функции Python возможны и / или стоят?

    Python - лучший язык программирования в мире.