Являются ли кортежи действительно неизменными в Python?

Один вопрос, с которым я столкнулся сегодня, который фактически протестировал неизменность кортежей в Python:

One Solution collect form web for “Являются ли кортежи действительно неизменными в Python?”

Несмотря на то, что кортежи неизменяемы, объект внутри него может быть изменен

Поскольку в >>> t = (1, 2, [3, 4]) список изменен, поэтому вы можете изменить значение списка с помощью расширенного назначения. += но затем возникает исключение.

здесь список t [2] изменен, как вы можете видеть

 t =(1,2,[3,4]) >>> id(t[2]) 38073768 >>> t[2] += [5,6] Traceback (most recent call last): File "<input>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> t[2] [3, 4, 5, 6] >>> id(t[2]) 38073768 

Как вы можете видеть, t [2] id никогда не изменяется.

введите описание изображения здесь

Что касается второго случая: t[2] = t[2] + [5,6] – он создает новый список и затем назначает ему t[2]

 >>> li = [1,2] >>> id(li) 38036304 >>> li = li + [3,4] >>> id(li) 38074368 >>> li += [5,6] >>> id(li) 38074368 

Как вы можете видеть, List = list + [] – это новый список с другим идентификатором. и поскольку кортеж является неизменным t [2] не получает привязан к новому объекту во втором случае

  • Как распараллеливать загрузки файлов?
  • Установите mod_wsgi на Ubuntu с помощью Python 3.6, Apache 2.4 и Django 1.11
  • Попытка вырезать b '' из моего массива Numpy
  • Ошибка при попытке перегрузить оператор «/»
  • Split pandas dataframe by String
  • Применить функцию вдоль оси над двумя массивами numpy - фигуры не выровнены
  • Ubuntu: пип не работает с python3.4
  • многострочный литерал работает в python2, но не в python3
  • На каких ядрах ядра работают мои процессы Python?
  • строка центра python с использованием спецификатора формата
  • Использование Gensim показывает «Используется медленная версия gensim.models.doc2vec»
  •  
    Interesting Posts for Van-Lav

    Запуск работника сельдерея внутри контекста приложения по-прежнему вызывает ошибку «работа вне контекста приложения» в задаче

    Вставка и обновление с помощью ядра SQLAlchemy

    Что означает, что «объект с слабосвязанными ссылками больше не существует»?

    Веб-данные (wiki) scraping python

    pythonic способ сортировки списка списков по последнему элементу внутреннего списка

    Пиратский движок Google App, пишущий csv на арабском языке

    Как заставить pyCharm остановить скрытие (мой) импорта python?

    Символические имена групп (как в Python) в Ruby Regular Expression

    Динамически добавлять функцию-член к экземпляру класса в Python

    python cherrypy – как добавить заголовок

    Присвоение функции атрибуту объекта

    Пользовательский пользователь в django повышает значение ValueError

    Как извлечь информацию между двумя уникальными словами в большом текстовом файле

    как вы находите последний столбец или строку в таблице Excel с использованием python pandas

    Что делает sys.exit действительно с несколькими потоками?

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