📝 Python

Словари в Python: хранение данных парами 📖

0
ავტორი
04e5cc8b-58ac-4bdc-bdee-661bbb
📅
გამოქვეყნებულია
30.03.2026
⏱️
კითხვის დრო
4 წთ
👁️
ნახვები
16
🌱
დონე
საწყისი
🐦 💼 ✈️

Представь, что ты создаешь карточку персонажа в игре. У него есть имя, атака, здоровье, класс. Как хранить всё это вместе?

Можно создать несколько переменных:

hero_name = "Артур"
hero_attack = 15
hero_health = 100
hero_class = "Воин"

Но это неудобно! Что если персонажей много? Тут нужно что-то лучше.

🗂️ Что такое словарь?

Словарь (dictionary) — это как коробка с ярлычками. На каждом ярлычке написано название (ключ), а внутри лежит значение.

В обычном словаре:
- Слово (ключ) → Определение (значение)
- “Дракон” → “Мифическое существо, дышащее огнем”

В Python словаре:
- КлючЗначение
- "name""Артур"
- "attack"15

🎮 Создание первого словаря

Словарь создается с помощью фигурных скобок { }:

hero = {
    "name": "Артур",
    "attack": 15,
    "health": 100
}

Синтаксис:
- Фигурные скобки { }
- Пары ключ: значение
- Разделяются запятыми
- Ключи обычно в кавычках (строки)

📥 Получение значений из словаря

Чтобы достать значение, используем квадратные скобки с ключом:

hero = {
    "name": "Артур",
    "attack": 15,
    "health": 100
}

print(hero["name"])     # Выведет: Артур
print(hero["attack"])   # Выведет: 15
print(hero["health"])   # Выведет: 100

Важно: Пишем точно тот же ключ, который создали!

✏️ Изменение значений

Можем изменить любое значение в словаре:

hero = {"name": "Артур", "health": 100}

print(f"Здоровье: {hero['health']}")  # 100

# Герой получил урон
hero["health"] = 80

print(f"Здоровье после удара: {hero['health']}")  # 80

# Можем использовать математику
hero["health"] = hero["health"] - 20  # Отнимаем 20
print(f"Здоровье: {hero['health']}")  # 60

# Короткая запись
hero["health"] -= 15  # Еще -15
print(f"Здоровье: {hero['health']}")  # 45

➕ Добавление новых ключей

Просто присваиваем значение новому ключу:

hero = {
    "name": "Артур",
    "health": 100
}

# Добавляем новое поле
hero["level"] = 1
hero["exp"] = 0

print(hero)
# {'name': 'Артур', 'health': 100, 'level': 1, 'exp': 0}

🐲 Практический пример: карточка монстра

dragon = {
    "name": "🐲 Огненный Дракон",
    "attack": 25,
    "health": 150,
    "type": "огонь"
}

print(f"Противник: {dragon['name']}")
print(f"Атака: {dragon['attack']}")
print(f"Здоровье: {dragon['health']}")
print(f"Тип: {dragon['type']}")

# Дракон атакует героя
hero_health = 100
damage = dragon["attack"]
hero_health -= damage

print(f"\n💥 Дракон атаковал! Урон: {damage}")
print(f"Здоровье героя: {hero_health}")

Вывод:

Противник: 🐲 Огненный Дракон
Атака: 25
Здоровье: 150
Тип: огонь

💥 Дракон атаковал! Урон: 25
Здоровье героя: 75

📋 Список словарей: коллекция объектов

Самое мощное — можно создать список из словарей! Это как колода карт, где каждая карта — отдельный словарь:

creatures = [
    {"name": "🐲 Дракон", "attack": 8, "health": 12},
    {"name": "🧙 Маг", "attack": 6, "health": 8},
    {"name": "⚔️ Рыцарь", "attack": 5, "health": 10}
]

# Выводим всех существ
for creature in creatures:
    print(f"{creature['name']} - ATK: {creature['attack']}, HP: {creature['health']}")

Вывод:

🐲 Дракон - ATK: 8, HP: 12
🧙 Маг - ATK: 6, HP: 8
⚔️ Рыцарь - ATK: 5, HP: 10

🎯 Типы значений в словаре

В словаре могут быть любые типы данных:

player = {
    "name": "Игрок1",           # строка
    "level": 5,                  # число
    "health": 100.5,             # дробное число
    "is_alive": True,            # булево значение
    "inventory": ["меч", "щит"]  # список
}

print(f"Имя: {player['name']}")
print(f"Уровень: {player['level']}")
print(f"Жив: {player['is_alive']}")
print(f"Инвентарь: {player['inventory']}")

⚠️ Частые ошибки

1. Ошибка в ключе

hero = {"name": "Артур", "health": 100}

# ❌ ОШИБКА: KeyError
print(hero["Name"])  # Буква N заглавная - это другой ключ!

# ✅ ПРАВИЛЬНО
print(hero["name"])  # Точно как в словаре

2. Забыли кавычки

# ❌ ОШИБКА
hero = {name: "Артур"}  # name без кавычек

# ✅ ПРАВИЛЬНО
hero = {"name": "Артур"}

3. Запятые между парами

# ❌ ОШИБКА: забыли запятую
hero = {
    "name": "Артур"
    "health": 100
}

# ✅ ПРАВИЛЬНО
hero = {
    "name": "Артур",
    "health": 100
}

📊 Сравнение: Список vs Словарь

Список Словарь
Доступ по номеру (индексу) Доступ по ключу (имени)
names[0] → первый элемент hero["name"] → значение name
Квадратные скобки [ ] Фигурные скобки { }
Порядок важен Порядок не важен
Для однотипных данных Для характеристик объекта

Когда использовать список:
- Коллекция одинаковых вещей
- planets = ["Марс", "Венера", "Юпитер"]
- Нужен порядок

Когда использовать словарь:
- Описание одного объекта
- hero = {"name": "Артур", "level": 5}
- Нужны названия полей

🎯 Итог

Действие Код Результат
Создать словарь hero = {"name": "Артур"} Новый словарь
Получить значение hero["name"] "Артур"
Изменить значение hero["health"] = 80 health теперь 80
Добавить ключ hero["level"] = 1 Новое поле level
Урон персонажу hero["health"] -= 10 health уменьшилось на 10

Запомни:
- ✅ Словарь — это пары ключ: значение
- ✅ Используй фигурные скобки { }
- ✅ Доступ через словарь["ключ"]
- ✅ Можно изменять и добавлять поля
- ✅ Идеально для хранения характеристик объектов

თქვენი რეაქცია სტატიაზე

💬 კომენტარები (0)

🔐 შედით სისტემაში კომენტარის დასატოვებლად
🚪 შესვლა
💭

კომენტარები ჯერ არ არის

გახდით პირველი, ვინც გააზიარებს აზრს ამ სტატიის შესახებ!

🔗 მსგავსი

მსგავსი სტატიები

გააგრძელეთ სწავლა ამ მასალებით

📝

JSON: Сохранение данных как в большой игре 💾

Цель: Научиться сохранять и загружать данные в формате JSON.

📅 03.04.2026 👁️ 24
📝

map() — Преобразуй всё разом! 🔄

map() применяет функцию к каждому элементу списка и возвращает результаты.

📅 03.04.2026 👁️ 21
📝

filter() — Отбери лучшее! 🔍

filter() отбирает элементы, которые проходят проверку (возвращают True).

📅 03.04.2026 👁️ 14

მოგეწონათ სტატია?

გამოიწერეთ ჩვენი განახლებები და მიიღეთ ახალი სტატიები პირველებმა. განვითარდით PyLand-თან ერთად!