Python+AI/Структуры данных в Python
Структуры данных в Python: List, Tuple, Dict, Set — это вторая лекция курса Программирование на Python для начинающих с помощью искусственного интеллекта, посвящённая основным типам коллекций в Python. В этой лекции вы познакомитесь со списками, кортежами, словарями и множествами на примере танцующего кота Фунтика 🐱 и его друга Байтика 💻.
Видеолекция
[править]Полная запись лекции "Структуры данных в Python с Qwen и котами" доступна на YouTube. Продолжительность: ~30 минут.
Что вы изучите
[править]- Списки (List) — упорядоченные изменяемые коллекции значений
- Кортежи (Tuple) — неизменяемые последовательности данных
- Словари (Dict) — пары «ключ → значение» для хранения структурированных данных
- Множества (Set) — коллекции уникальных элементов без повторов
- Операции со списками: append, len, индексация, циклы
- Практические примеры: программа танцев кота, профили котов, игрушки
- Работа в Google Colab с ноутбуком week2a_list.ipynb
- Использование Qwen AI для генерации и объяснения кода
Список (List)
[править]Список — это упорядоченная изменяемая коллекция значений. Списки создаются с помощью квадратных скобок [].
Основные операции
[править]| Операция | Код | Описание |
|---|---|---|
| Создание | my_list = [1, 2, 3]
|
Создать новый список |
| Доступ к элементу | my_list[0]
|
Получить первый элемент (индексы начинаются с 0) |
| Последний элемент | my_list[-1]
|
Получить последний элемент |
| Добавление | my_list.append(4)
|
Добавить элемент в конец списка |
| Длина | len(my_list)
|
Узнать количество элементов |
| Цикл | for item in my_list:
|
Перебрать все элементы |
Пример: Список дел Фунтика
[править]# Список дел Фунтика на неделю
todo_list = [
"📚 Написать эссе по экономике",
"💻 Выполнить задание по Python",
"🎬 Посмотреть лекцию на YouTube",
"☕ Кофе с однокурсниками",
"🎮 Поиграть в видеоигры",
]
# Вывести первое и последнее дело
print(f"Самое важное: {todo_list[0]}")
print(f"Самое приятное: {todo_list[-1]}")
# Добавить новое дело
todo_list.append("🏋 Тренировка")
# Узнать количество дел
print(f"🐱 У Фунтика есть {len(todo_list)} дел")
# Цикл по списку с нумерацией
for i, task in enumerate(todo_list, 1):
print(f"🐱 Дело #{i}: {task}")
Кортеж (Tuple)
[править]Кортеж — это неизменяемая последовательность значений. Кортежи создаются с помощью круглых скобок (). После создания кортежа его элементы нельзя изменить, добавить или удалить.
Когда использовать кортежи
[править]- Для хранения постоянных данных (координаты точки, время)
- Когда важно гарантировать неизменность данных
- Кортежи работают быстрее списков
Пример: Время начала конкурса
[править]# Время начала конкурса танцев (часы, минуты)
start_time = (19, 30)
print(f"⏰ Начало в {start_time[0]}:{start_time[1]:02d}")
# Вывод: ⏰ Начало в 19:30
Словарь (Dict)
[править]Словарь — это коллекция пар «ключ → значение». Словари создаются с помощью фигурных скобок {} и двоеточия : между ключом и значением.
Когда использовать словари
[править]- Для хранения структурированных данных (профили, настройки)
- Когда нужен быстрый доступ к данным по ключу
- Для представления объектов с именованными свойствами
Пример: Профили котов
[править]# Профиль Фунтика
funtik = {
"name": "Фунтик",
"university": "ПетрГУ",
"toys": ["🧶 клубок", "🐟 рыбка"],
}
# Профиль Байтика
bytik = {
"name": "Байтик",
"university": "MIT",
"projects": 5,
"toys": ["🐭 мышка", "🎾 мячик"],
}
# Обращение к словарю по ключу
print(f"📚 {funtik['name']} учится в {funtik['university']}")
print(f"🎯 Игрушки Фунтика: {', '.join(funtik['toys'])}")
print(f"💻 {bytik['name']} учится в {bytik['university']}")
print(f"🎁 Игрушки Байтика: {', '.join(bytik['toys'])}")
Множество (Set)
[править]Множество — это неупорядоченная коллекция уникальных элементов. Множества создаются с помощью фигурных скобок {} или функции set().
Особенности множеств
[править]- Автоматически удаляют дубликаты
- Не сохраняют порядок элементов
- Полезны для проверки вхождения элемента
- Поддерживают математические операции (объединение, пересечение)
Пример: Стили танцев без повторов
[править]# Создаём множество с повторяющимися элементами
all_styles = {"Вальс", "Рэп", "Вальс", "Хип-хоп", "Рэп"}
print(f"🎵 Стили без повторов: {all_styles}")
# Вывод: 🎵 Стили без повторов: {'Вальс', 'Рэп', 'Хип-хоп'}
# Обратите внимание: только уникальные элементы!
Сравнительная таблица
[править]| Тип | Пример | Особенности | Когда использовать |
|---|---|---|---|
| List | dance_skills = ["Вальс", "Рэп"]
|
Можно менять, порядок важен | Программа выступлений, список задач |
| Tuple | start_time = (19, 30)
|
Нельзя менять | Координаты, время, константы |
| Dict | props = {"Вальс": "клубок"}
|
Ключ → значение | Профили, настройки, структурированные данные |
| Set | all_styles = {"Вальс", "Рэп"}
|
Только уникальные элементы | Удаление дубликатов, проверка вхождения |
Практическое задание
[править]Задание 1: Список покупок
[править]Создайте список покупок для кота Фунтика:
- Добавьте в список 5 товаров
- Выведите первый и последний товар
- Добавьте ещё один товар с помощью
append() - Выведите количество товаров в списке
Задание 2: Словарь студента
[править]Создайте словарь с информацией о себе:
- Имя
- Университет/школа
- Любимые предметы (список)
- Количество проектов
Выведите информацию из словаря с помощью форматированных строк.
Задание 3: Множество интересов
[править]Создайте два множества:
my_interests— ваши интересыfriend_interests— интересы друга
Найдите общие интересы с помощью операции пересечения (&).
Работа в Google Colab
[править]Откройте ноутбук week2a_list.ipynb в Google Colab:
- Перейдите в репозиторий курса github.com/componavt/python-ai-template на GitHub
- Откройте папку
notebooks - Нажмите на файл
week2a_list.ipynb - Нажмите кнопку "Open in Colab"
- Запустите все ячейки кода
Использование Qwen AI
[править]В этой лекции мы используем Qwen — AI-помощника от Alibaba для генерации и объяснения кода.
Как использовать Qwen
[править]- Откройте chat.qwen.ai
- Войдите с помощью Google-аккаунта
- Задайте вопрос на русском или английском языке
- Скопируйте полученный код в Google Colab
Примеры промптов для Qwen
[править]- "Создай список из 10 случайных чисел от 1 до 100 в Python"
- "Как отсортировать словарь по значениям в Python?"
- "Напиши функцию для удаления дубликатов из списка"
- "Объясни разницу между списком и кортежем в Python"
См. также
[править]- Предыдущая лекция: Переменные, условия и циклы
- Следующая лекция: Визуализация данных
- "Промпт-магия: от зубрёжки к творчеству" — близкий по тематике искусственного интеллекта курс Викиверситета
Ссылки
[править]- Видеолекция на YouTube — полная запись с объяснениями
- Ноутбук week2a_list.ipynb — весь код из лекции
- Слайды презентации — PDF с теорией и примерами
- Qwen AI — AI-помощник для генерации кода
- Telegram-канал курса — обсуждения и помощь