## Метод `dict.fromkeys()`

Удобный способ создать новый словарь, где все указанные ключи получают одно и то же значение (по умолчанию — `None`).

```python
dict.fromkeys(iterable, value=None)
```

* `iterable` — итерируемый объект (список, строка, кортеж и т.п.), содержащий ключи.
* `value` — (необязательный) — значение, которое получат все ключи (по умолчанию `None`).

### Без значения

```python
keys = ['a', 'b', 'c']
d = dict.fromkeys(keys)
print(d)
# {'a': None, 'b': None, 'c': None}

```


### Указание значения по умолчанию

```python
keys = ['a', 'b', 'c']
d = dict.fromkeys(keys, 0)
print(d)
# {'a': 0, 'b': 0, 'c': 0}
```

---

## ⚠️ Важно: если значение — **изменяемый объект**

Если передать изменяемый объект (например, список, словарь, множество) как `value`,
**все ключи будут ссылаться на один и тот же объект!**

### Пример1:

```python
keys = ['a', 'b', 'c']
d = dict.fromkeys(keys, [])
d['a'].append(1)
print(d)
# {'a': [1], 'b': [1], 'c': [1]}  ❗ все три ссылаются на один и тот же список!
```

### Пример2:


```python
keys = ['low', 'middle', 'high']
d = dict.fromkeys(keys, {})
d['low']['milk'] = 5
d['high']['diamond'] = 10000

print(d)
# {'low': {'milk': 5, 'diamond': 10000}, 'middle': {'milk': 5, 'diamond': 10000}, 'high': {'milk': 5, 'diamond': 10000}}

```