Семь способов создать словарь
less_19__dict/theory_01__dict_creation.md
Систематизирует все способы создания словаря: буквальный синтаксис {}, функция dict() (с kwargs, списком пар, копированием, zip()), dict comprehension, dict.fromkeys(), unpacking **, разбор JSON-строки и collections.defaultdict. Завершается сводной таблицей «когда что использовать» — удобный чеклист для выбора подходящего способа под конкретную задачу.
- {'a': 1} — литеральный синтаксис, ключи только hashable
- dict(a=1, b=2) — через kwargs, только если ключ — валидное имя переменной
- dict([('a',1)]) и dict(zip(keys, values)) — из пар и из двух списков
- {x: x**2 for x in range(10) if x % 2 == 0} — dict comprehension
- dict.fromkeys(['a','b','c'], 0) — один и тот же default для всех ключей
- {**a, 'z': 3} — unpacking с объединением словарей
- json.loads(...) и defaultdict(int)/defaultdict(list) — из JSON и с фабрикой значений
Показать начало файла (143 строк всего)
# Cпособы создания словаря
## 1. Через фигурные скобки `{}`
```python
d = {'a': 1, 'b': 2, 'c': 3}
d_empty = {} # пример пустого словаря
```
* Ключи должны быть `immutable` (`hashable`)
---
## 2. С помощью функции `dict()`
Функция `dict()` может принимать разные виды аргументов.
```python
d_empty = dict() # пример пустого словаря
```
### 2.1. С именованными аргументами (`kwargs`)
```python
d = dict(a=1, b=2, c=3) # {'a': 1, 'b': 2, 'c': 3}
```
⚠️ Работает только если ключи — корректные имена переменных (строки без пробелов и спецсимволов).
---
### 2.2. Из двумерного массива
```python
d = dict([('a', 1), ('b', 2), ('c', 3)])
```
* Можно использовать **любую итерируемую структуру**, где каждый элемент — пара `(ключ, значение)`.
* Первый элемент может ТОЛЬКО `immutable` (`hashable`).
---
### 2.3. Из другого словаря
```python
old = {'a': 1, 'b': 2}
new = dict(old)
```
Создаётся поверхностная **копия** исходного словаря.
---
### 2.4. Из `zip()` с двумя аргументами (коллекциями)
```python
keys = ['a', 'b', 'c']
values = [1, 2, 3]
d = dict(zip(keys, values))
…