Поскольку люди уже ответили, что tuples
неизменны, а lists
изменчивы, но есть один важный аспект использования кортежей, который мы должны помнить
Если tuple
содержит list
или dictionary
внутри него, их можно изменить, даже если сам tuple
неизменен.
Например, давайте предположим, что у нас есть кортеж, который содержит список и словарь как
my_tuple = (10,20,30,[40,50],{ 'a' : 10})
мы можем изменить содержимое списка как
my_tuple[3][0] = 400
my_tuple[3][1] = 500
, что делает новый кортеж похожим на
(10, 20, 30, [400, 500], {'a': 10})
мы также можем изменить словарь внутри кортежа как
my_tuple[4]['a'] = 500
, из-за чего весь кортеж будет выглядеть как
(10, 20, 30, [400, 500], {'a': 500})
Это происходит потому, что list
и dictionary
являются объектами, и эти объекты не изменяются, а содержимое указывает на них.
Таким образом, tuple
остается неизменным без каких-либо исключений