Когда использовать список, а когда словарь
Оба инструмента хранят данные, но для разных задач. Понимание разницы помогает писать чистый и логичный код.
Простое правило
Список, когда важен порядок и однотипные элементы:
- Очередь задач
- Результаты поиска
- История действий
- Набор чисел
Словарь, когда у данных есть имена, и ты обращаешься к ним по имени:
- Профиль пользователя
- Настройки программы
- Счётчики по категориям
- Любая структурированная запись
Примеры для сравнения
Список подходит:
# Список покупок, важен порядок, элементы однотипны
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.
Когда не очевидно, подумай об операциях
Спроси себя:
- Мне нужно перебирать всё подряд? → Список
- Мне нужно найти конкретное поле по имени? → Словарь
- Мне нужно хранить коллекцию объектов с полями? → Список словарей
💡 Главная мысль: Список, для упорядоченных коллекций однотипных данных. Словарь, для структурированных записей с именованными полями. В реальном коде они часто используются вместе.