Learnly
Python с нуля/Глава 6/Урок 3

Когда использовать список, а когда словарь

Когда использовать список, а когда словарь

Оба инструмента хранят данные, но для разных задач. Понимание разницы помогает писать чистый и логичный код.

Простое правило

Список, когда важен порядок и однотипные элементы:

  • Очередь задач
  • Результаты поиска
  • История действий
  • Набор чисел

Словарь, когда у данных есть имена, и ты обращаешься к ним по имени:

  • Профиль пользователя
  • Настройки программы
  • Счётчики по категориям
  • Любая структурированная запись

Примеры для сравнения

Список подходит:

# Список покупок, важен порядок, элементы однотипны
shopping = ["молоко", "хлеб", "яйца", "масло"]

# Результаты поиска
results = ["статья 1", "статья 2", "статья 3"]

# Числа для вычислений
temperatures = [12, 15, 8, 22, 18, 14]
average = sum(temperatures) / len(temperatures)

Словарь подходит:

# Профиль, у каждого поля есть имя
user = {
    "name": "Алекс",
    "email": "alex@example.com",
    "age": 25
}

# Настройки
config = {
    "theme": "dark",
    "language": "ru",
    "notifications": True
}

# Счётчик слов
text = "яблоко банан яблоко вишня яблоко"
counts = {}
for word in text.split():
    counts[word] = counts.get(word, 0) + 1
print(counts)  # {'яблоко': 3, 'банан': 1, 'вишня': 1}

Комбинирование: список словарей

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

# Таблица данных, список строк, каждая строка, словарь
orders = [
    {"id": 1, "product": "Ноутбук", "price": 80000, "status": "delivered"},
    {"id": 2, "product": "Мышь",    "price": 1500,  "status": "pending"},
    {"id": 3, "product": "Монитор", "price": 25000, "status": "delivered"},
]

# Посчитать сумму доставленных заказов
total = 0
for order in orders:
    if order["status"] == "delivered":
        total += order["price"]

print(f"Выручка по доставленным: {total} руб.")   # 105000 руб.

Это именно та структура, с которой работают в анализе данных, и именно так выглядят данные из баз данных и API.

Когда не очевидно, подумай об операциях

Спроси себя:

  • Мне нужно перебирать всё подряд? → Список
  • Мне нужно найти конкретное поле по имени? → Словарь
  • Мне нужно хранить коллекцию объектов с полями? → Список словарей

💡 Главная мысль: Список, для упорядоченных коллекций однотипных данных. Словарь, для структурированных записей с именованными полями. В реальном коде они часто используются вместе.