Skip to content

Commit 65fb5b1

Browse files
committed
feat: add mutable page
1 parent 8d87c22 commit 65fb5b1

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

docs/python/mutable.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
!!! info ""
2+
**Изменяемые типы данных** — это те, чье содержимое можно изменить после создания
3+
(например, списки `list`, словари `dict`, множества `set`). Неизменяемые типы данных — это те, чье содержимое
4+
нельзя изменить после создания (например, числа `int`, `float`, строки `str`, кортежи `tuple`).
5+
6+
## Подробный ответ
7+
8+
<span class="badge">Изменяемые (mutable)</span> типы:
9+
Объекты этих типов могут быть изменены "на месте" после их создания.
10+
Это означает, что вы можете модифицировать их содержимое, не создавая новый объект.
11+
12+
```python
13+
my_list = [1, 2]
14+
my_list.append(3)
15+
print(my_list) # [1, 2, 3]
16+
17+
my_dict = {"a": 1}
18+
my_dict["b"] = 2
19+
print(my_dict) # {'a': 1, 'b': 2}
20+
21+
my_set = {1, 2}
22+
my_set.add(3)
23+
print(my_set) # {1, 2, 3}
24+
```
25+
Пользовательские классы (если не реализована специальная логика).
26+
27+
<span class="badge">Неизменяемые (immutable)</span> типы:
28+
Объекты этих типов не могут быть изменены после их создания.
29+
Любая операция, которая, казалось бы, изменяет неизменяемый объект, на самом деле создает новый объект.
30+
31+
```python
32+
x = 5
33+
x = x + 1 # создается новый объект 6, 5 остается неизменным
34+
35+
y = 3.14
36+
y = y * 2 # та же логика, что и с int
37+
38+
s = "hello"
39+
s = s + " world" # s ссылается на новый объект
40+
41+
my_tuple = (1, 2)
42+
my_tuple = my_tuple + (3,) # создается новый кортеж (1, 2, 3)
43+
44+
True, False, None # уникальные объекты
45+
```
46+
## Особенности
47+
Неизменяемые объекты могут использоваться в качестве ключей словарей и элементов множеств, так как их хеш-значение не меняется.

0 commit comments

Comments
 (0)