Разница между Mutable и неизменяемым в Python

Все в Python - это объект. Вы должны понимать, что Python представляет все свои данные как объекты. Изменчивость объекта определяется его типом. Некоторые из этих объектов, такие как списки и словари, изменяемы, что означает, что вы можете изменять их содержимое, не изменяя их идентификацию. Другие объекты, такие как целые числа, поплавки, строки и кортежи, являются объектами, которые нельзя изменить.

Список изменен

Подходящий пример

 
my_list = [10, 20, 30]
print(my_list)

Выход

 
[10, 20, 30]

продолжить ...

 
my_list = [10, 20, 30]
my_list[0] = 40
print(my_list)

Выход

 
[40, 20, 30]

Tuple неизменен

Неизбежный пример

 
my_yuple = (10, 20, 30)
print(my_yuple)

Выход

 
(10, 20, 30)

продолжить ...

 
my_yuple = (10, 20, 30)
my_yuple[0] = 40
print(my_yuple)

Выход

 
Traceback (most recent call last):
  File "test.py", line 3, in < module >
    my_yuple[0] = 40
TypeError: 'tuple' object does not support item assignment

Если вы хотите написать наиболее эффективный код, вы должны знать разницу между изменчивым и неизменяемым в python. Конкатенация строки в циклах отнимает много памяти, потому что строки неизменяемы, объединяя две строки вместе, фактически создает третью строку, которая является комбинацией двух предыдущих. Если вы много итерации и создаете большую строку, вы будете тратить много памяти на создание и удаление объектов. Используйте метод сжатия с использованием списка.

Python обрабатывает изменчивые и неизменные объекты по-разному. Неизменяемые быстрее доступ к изменяемым объектам. Кроме того, неизменяемые объекты принципиально дороги для «изменения», потому что это требует создания копии. Изменение изменчивых объектов дешево.

Источник: http://net-informations.com/python/iq/immutable.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector