Большинство людей намного сильнее, чем они думают, они просто забывают иногда в это верить.
«Холм одного дерева»
Сегодня с девятыми классами разбирали коллекции данных в Python на примере списков (list) и кортежей (tuple). И… это было странно. Потому что люди так и не поняли, что означает «изменяемый тип» и «неизменяемый тип» и чем они отличаются друг от друга. А ведь всё довольно просто:
На примере списка:
>>> a = [1, 2, 3]
>>> type(a)
<class 'list'>
>>> a[1] = 5
>>> a
[1, 5, 3]
На примере кортежа:
>>> g = (1, 2, 3)
>>> type(g)
<class 'tuple'>
>>> g[1] = 5
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
g[1] = 5
TypeError: 'tuple' object does not support item assignment
То есть, мы видим, что в списке мы легко можем поменять значение любого элемента, а вот в кортеже — уже нет. Возникает исключение TypeError, которое говорит нам, что «‘tuple’ object does not support item assignment«, то есть «‘кортеж’ объект не поддерживает назначение элемента» (спасибо thecode.media). Это как раз и есть «неизменяемый тип».
Но учеников больше развеселило слово «тип»… И всё! Этим всё сказано.
Photo by James Jeremy Beckers on Unsplash