01. Продвинутая работа со строками и списками
Продвинутая работа со строками и списками
Описание: В этом уроке вы научитесь работать с продвинутыми инструментами Python: срезами, генераторами, функциями высшего порядка и модулем csv. Также разберём, как устанавливать внешние пакеты через pip и управлять виртуальными окружениями.Срезы (slices)
Срезы — это мощный инструмент для извлечения частей списка или строки. Формат:объект[начало:конец:шаг]
text = 'Python is powerful!'
print(text[0:6]) # Python
print(text[7:9]) # is
print(text[-9:-1]) # powerful
print(text[::-1]) # !lufrewop si nohtyP
- Если не указано начало — берётся с 0.
- Если не указан конец — до конца строки.
- Отрицательный шаг (−1) переворачивает строку.
Списочные выражения (List Comprehensions)
Python позволяет создавать списки в одну строку.
squares = [x**2 for x in range(1, 6)]
print(squares) # [1, 4, 9, 16, 25]
Можно добавлять условия:
even = [x for x in range(10) if x % 2 == 0]
print(even) # [0, 2, 4, 6, 8]
Списочные выражения делают код короче, но не жертвуйте читаемостью — если выражение длинное, лучше используйте цикл.
Генераторы (Generators)
Генераторы создают последовательности «на лету» без хранения всех элементов в памяти.
def countdown(n):
while n > 0:
yield n
n -= 1for num in countdown(5):
print(num)
- yield возвращает значение, но не завершает функцию.
- Используется для работы с потоками данных и файлами.
Lambda-функции и функции высшего порядка
Lambda — это анонимные функции, которые удобно использовать с map() и filter().
nums = [1, 2, 3, 4, 5]# map применяет функцию к каждому элементу
squared = list(map(lambda x: x**2, nums))
print(squared) # [1, 4, 9, 16, 25]
# filter выбирает только подходящие элементы
even = list(filter(lambda x: x % 2 == 0, nums))
print(even) # [2, 4]
Работа с CSV-файлами
CSV (Comma-Separated Values) — простой формат для обмена данными между Excel, Python и базами данных.Создадим файл data.csv:
name,age,city
Anna,25,Moscow
Ivan,30,Samara
Чтение:
import csvwith open('data.csv', encoding='utf-8') as f:
reader = csv.DictReader(f)
for row in reader:
print(row['name'], 'из', row['city'])
Запись:
with open('out.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['name', 'age'])
writer.writerow(['Anna', 25])
writer.writerow(['Ivan', 30])
Установка пакетов через pip
pip — стандартный инструмент Python для установки внешних библиотек.Проверка, что pip установлен
python -m pip --version
Если команда не работает — обновите pip:
python -m ensurepip --upgrade
Установка пакетов
pip install requests
pip install pandas
Обновление пакета
pip install --upgrade requests
Просмотр установленных пакетов
pip list
Создание виртуального окружения (рекомендуется для проектов)
python -m venv venv
source venv/bin/activate # Linux / macOS
venv\Scripts\activate # Windows
После активации можно ставить пакеты без конфликтов:
pip install flask
Итоги урока
Теперь вы умеете:- Использовать срезы и списочные выражения.
- Работать с генераторами и lambda-функциями.
- Читать и записывать CSV-файлы.
- Устанавливать пакеты через pip и работать в виртуальной среде.