Модуль 1.5 Базовий синтаксис

МІСТ — КОЛИ СПИСОК, КОЛИ СЛОВНИК

Курс: Python для аналітиків з нуля

1. ЩО НАВЧИМОСЯ РОБИТИ

Швидко обирати правильну структуру під задачу. Розуміти коли список, коли словник, коли комбінація.

Найчастіше помилка початківця — неправильна структура. Задача проста, але код складний бо структура не підходить. Навчимося обирати.

2. ТЕРМІНОЛОГІЯ

Індекс (index)

Позиція елемента у списку. Починається з 0.

Ключ (key)

Назва поля у словнику. Унікальна, доступ швидкий.

Ітерація (iteration)
Перебір елементів: for item in list або for key in dict
Lookup (пошук)

Знайти елемент за критерієм. У словнику швидко, у списку повільно.

3. ТЕОРІЯ

3.1 Таблиця рішень

Список — коли:

Порядок важливий (журнал подій, історія)
Елементи однотипні (всі координати, всі частоти)
  • Доступ за позицією: "перший", "останній", "кожен другий"
Можуть бути дублікати (одна частота кілька разів)

Словник — коли:

Пошук за назвою (позивний → координати)
Різнотипні дані (час, частота, сигнал, позивний)
Потрібен швидкий lookup (10000 записів, знайти конкретний)
Ключі унікальні (один позивний = одні дані)

Комбінація (список словників) — коли:

Таблиця з рядками (кожен рядок = словник)
Багато записів однієї структури (журнал перехоплень)
Порядок + пошук (сортувати за часом, шукати за частотою)

3.2 Дерево рішень

Питання 1: Чи порядок важливий?

  • Так → йди до питання 2
  • Ні → йди до питання 3

Питання 2: Чи елементи однотипні?

Так → СПИСОК (всі числа, всі рядки)
Ні → СПИСОК СЛОВНИКІВ (рядки з полями)

Питання 3: Чи треба пошук за назвою?

Так → СЛОВНИК (ключ → значення)
  • Ні → перегляньте задачу

3.3 Приклади з радіорозвідки

Приклад 1: Журнал перехоплень

Порядок важливий (хронологія), кожен запис має кілька полів.

Рішення: список словників

journal = [

Приклад 2: База позивних

Пошук за позивним, порядок неважливий, дані про кожен унікальні.

Рішення: словник

база = {

Приклад 3: Історія частот

Просто список чисел, порядок важливий (послідовність перехоплень).

Рішення: список

частоти = [145.5, 433.2, 145.5, 146.0, 433.2, 145.5]

Приклад 4: Налаштування програми

Ключ-значення, пошук за назвою, порядок неважливий.

Рішення: словник

config = {

Приклад 5: Топ-10 частот з підрахунком

Частота → кількість, швидкий lookup, порядок неважливий.

Рішення: словник

статистика = {

4. КОД З КОМЕНТАРЯМИ

Конвертація між структурами:

# Список → Словник (індекс → значення)

5. РОЗБІР ПО РЯДКАХ

enumerate(список) — повертає пари (індекс, значення)
база.values() — всі значення словника (без ключів)

база.items() — пари (ключ, значення) для ітерації

рядок.update(дані) — додати всі ключі з дані у рядок

sorted(items, key=lambda x: x[1]) — сортування пар за другим елементом

6. ЗАВДАННЯ 1: ОБРАТИ СТРУКТУРУ

Для кожної задачі обери: список / словник / список словників
A. Зберегти 100 координат точок перехоплення (lat, lon, час)
B. Зберегти відповідність позивний → частота (Альфа-1 → 145.5)

C. Зберегти останні 50 значень сигналу для графіка

D. Зберегти налаштування програми (поріг, шлях, автозбереження)

Відповіді:

A. Список словників (порядок + кілька полів)
B. Словник (пошук за позивним)
C. Список (порядок, однотипні)
D. Словник (ключ-значення, пошук за назвою)

7. ЗАВДАННЯ 2: ВИПРАВИТИ СТРУКТУРУ

Код незручний через неправильну структуру:

# Погано: список списків

Перепиши як список словників:

# Добре: список словників

8. ЗАВДАННЯ 3: ПРАКТИКА

Маєш список частот з дублікатами:

частоти = [145.5, 433.2, 145.5, 146.0, 433.2, 145.5, 146.0]

Створи словник: частота → кількість разів

Підказка: використай Counter або ручний підрахунок

from collections import Counter

9. РЕФЛЕКСІЯ

Я розумію коли використовувати список

Я розумію коли використовувати словник

Я знаю коли потрібен список словників

Я вмію конвертувати між структурами

Я можу швидко обрати правильну структуру

10. ЩО ДАЛІ

Модуль 1.6: Умови та логіка — if, else, and, or

Головна думка: Порядок → список. Пошук → словник. Таблиця → список словників. Правильна структура = простий код.

Рефлексія

Прогрес модуля 0%