Шпаргалка: методы списков и строк
Если «Шпаргалка: методы списков и строк» вызывает трудности — это нормально: тема собрана из простых идей. Покажем их по порядку: теория, пример, задание, ошибки.
1. Зачем нужны методы списков и строк
Когда в задаче нужно обработать десятки слов, чисел или символов, ручной перебор быстро приводит к ошибкам. Методы списков и строк помогают искать, добавлять, удалять и преобразовывать данные коротко и понятно. Эта шпаргалка пригодится перед контрольной, ОГЭ или ЕГЭ: ты увидишь, какой метод выбрать, что он возвращает и в каком месте чаще всего ошибаются.
Список хранит несколько элементов в определённом порядке: [4, 7, 2]. Строка хранит последовательность символов: "информатика". У обоих типов есть индексы, причём отсчёт начинается с нуля. Значит, первый элемент имеет индекс 0, второй — 1.
Важно отличать метод от функции. Метод вызывают через точку у конкретного объекта: numbers.append(5). Функция получает объект в скобках: len(numbers). Перед решением задачи определи тип данных и результат, который должен получиться.
2. Основные методы списков
Метод append(x) добавляет один элемент в конец списка. Если нужно добавить несколько элементов, используют extend(iterable). Метод insert(i, x) вставляет значение перед индексом i. Для удаления применяют remove(x), который удаляет первое совпадение, или pop(i), который удаляет элемент по индексу и возвращает его.
Метод sort() сортирует список на месте, а reverse() разворачивает порядок элементов. Методы ничего не возвращают, если их задача — изменить сам список. Поэтому запись numbers = numbers.sort() ошибочна: в переменную попадёт значение None.
Перед изменением списка проверь, нужен ли тебе новый список или достаточно изменить исходный. Для безопасной сортировки можно написать sorted(numbers): эта функция создаст копию и оставит исходные данные без изменений.
Ещё полезны count(x) для подсчёта совпадений и index(x) для поиска первого индекса. Если элемента нет, index() вызовет ошибку, поэтому иногда удобнее сначала проверить условием if x in numbers.
3. Методы строк: поиск и изменение
Строки неизменяемы: любой «изменяющий» метод создаёт новую строку. Метод lower() переводит буквы в нижний регистр, upper() — в верхний. Для удаления пробелов по краям используют strip(), а для замены фрагментов — replace(old, new).
Проверить начало и конец строки помогают startswith() и endswith(). Метод find(sub) возвращает индекс первого вхождения или −1, если фрагмент не найден. Метод count(sub) считает непересекающиеся вхождения. Для проверки содержания применяют оператор in: выражение "abc" in text даёт логический результат.
Строку часто разбивают на список методом split(). Без аргумента он делит текст по пробельным символам. Обратная операция — " ".join(words): она соединяет элементы списка через указанный разделитель.
Если нужно получить длину текста или списка, используется общая функция len(). Индексация и срезы работают со строками так же, как со списками: text[0] — первый символ, text[1:4] — символы с индексами 1, 2 и 3.
4. Таблица выбора метода
Сначала сформулируй действие обычными словами, а затем подбери инструмент. Не смешивай методы, которые меняют объект, с функциями, возвращающими новый результат.
| Задача | Инструмент | Что получится |
|---|---|---|
| Добавить элемент в конец списка | append(x) | Изменённый список |
| Удалить первое совпадение | remove(x) | Изменённый список |
| Посчитать элементы | len(data) | Целое число |
| Отсортировать копию | sorted(data) | Новый список |
| Разделить строку | text.split() | Список строк |
| Соединить части | separator.join(parts) | Новая строка |
| Найти фрагмент | text.find(sub) | Индекс или −1 |
Запомни различие между remove() и pop(): первый ищет значение, второй работает с индексом. Если список содержит одинаковые элементы, remove() удалит только первое совпадение. При пустом списке или неверном индексе некоторые методы вызовут ошибку, поэтому границы и наличие данных нужно проверять.
5. Разобранный пример и ловушки
Рассмотрим задачу: из строки получить слова в нижнем регистре, оставить только слова длиннее трёх символов и вывести их через запятую. Здесь последовательно применяются lower(), split(), условие и join().
text = "Python и списки"
\( words = text.lower().split() \)
\( long_words = [] \)
for word in words:
if len(word) > 3:
long_words.append(word)
result = ", ".join(long_words)
print(result)
Вывод: python, списки
Сначала переменная text превращается в строку нижнего регистра. Затем split() создаёт список ["python", "и", "списки"]. Цикл проверяет длину каждого элемента: слово «и» не подходит, остальные добавляются через append(). В конце join() соединяет два элемента разделителем «, ».
Не пиши long_words.append(word) внутри условия с неправильным отступом. И не используй join() для списка чисел: сначала преобразуй числа в строки, иначе Python сообщит об ошибке.
Типичная ошибка — ожидать, что replace() изменит исходную строку. Нужно сохранить результат: text = text.replace("а", "о"). Ещё одна ошибка — удалять элементы списка во время прохода по нему: часть элементов можно пропустить. Безопаснее создать новый список или пройти по копии.
6. Что запомнить
Список изменяется методами append(), extend(), insert(), remove(), pop(), sort() и reverse(). Для строк особенно важны lower(), upper(), strip(), replace(), find(), count(), split() и join(). Общая функция len() определяет длину, а in проверяет наличие элемента или фрагмента.
Главный алгоритм такой: определи тип данных, назови нужное действие, выбери метод, проверь, изменяет ли он объект или возвращает новый результат. После этого проверь индексы, регистр, пробелы и типы элементов. Такая последовательность заметно снижает число случайных ошибок.
Закрепи тему на коротких задачах: посчитай гласные, удали повторяющиеся элементы, найди самое длинное слово и отсортируй числа. Зарегистрируйся в личном кабинете и реши 5 заданий бесплатно, чтобы сразу проверить, какие методы уже запомнились.
Если готовишься к экзамену, выбери подходящий раздел: задания ОГЭ или задания ЕГЭ. Практика после теории помогает превратить шпаргалку в устойчивый навык.
Как закрепить тему после разбора?
Реши несколько задач разных типов: отдельно на списки, отдельно на строки и затем смешанные. Каждый раз проговаривай, что возвращает метод и меняется ли исходный объект. Ошибки запиши в короткую таблицу и повтори через день.
Чем отличаются append() и extend()?
append() добавляет один объект целиком, а extend() добавляет элементы переданной последовательности по одному. Поэтому список после append([2, 3]) получит вложенный список, а после extend([2, 3]) — два отдельных элемента.
Почему sort() нельзя присвоить переменной?
sort() изменяет исходный список и возвращает None. Если нужен новый отсортированный список, используй sorted(data), не меняя оригинал.
Как безопасно искать слово в строке?
Для простой проверки используй оператор in. Если нужен индекс, применяй find(), потому что при отсутствии фрагмента он возвращает −1, а не вызывает ошибку.
Проверь себя на реальных заданиях
После разбора решите 5–7 заданий подряд — и тема ваша. Тренажёр Просто Урок подберёт их и объяснит ошибки. Бесплатно.