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 -= 1

for 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 csv

with 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 и работать в виртуальной среде.