Разница между 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 обрабатывает изменчивые и неизменные объекты по-разному. Неизменяемые быстрее доступ к изменяемым объектам. Кроме того, неизменяемые объекты принципиально дороги для «изменения», потому что это требует создания копии. Изменение изменчивых объектов дешево.