В процессе анализа данных мне пришлось удалить из них ненужные строки, чтобы получить чистый набор данных. Я использовал технику понимания списка, чтобы выбрать конкретную строку из данных, а затем применил другой метод для очистки выбранных строк.
В этом уроке я показал, как можно извлечь строку из списка на языке Python, используя не один, а сразу три разных метода.
В Python есть несколько способов извлечь строку из списка. Под извлечением строки из списка мы понимаем получение одной или нескольких строк из списка строк, например: [«идти», «где-то», «где», «тебе», «нравится»].
Я расскажу вам о некоторых наиболее часто используемых методах или способах извлечения строк из списка в Python. Помните, что не все методы одинаково подходят по времени выполнения, и вы можете выбрать тот, который лучше всего подходит для вашей задачи. В этих техниках я не буду объяснять понятия пространства и времени, так как это выходит за рамки данного контекста.
С помощью индексации
Вы можете использовать индексацию для извлечения нужной строки из списка, так как у каждого элемента списка есть свой уникальный порядковый номер — индекс.
Например, у вас есть список штатов, как показано ниже.
states = ['Florida', 'Ohio', 'Virginia', 'Michigan']
Посмотрите на список «состояний» выше. В нём четыре элемента, а индексы элементов начинаются с нуля:
- первый элемент имеет индекс 0;
- второй элемент имеет индекс 1;
- третий элемент имеет индекс 2;
- четвёртый элемент имеет индекс 3.
Допустим, вы хотите получить строку «Вирджиния» из этого списка. Найдите её индекс: он будет равен трём, так как «Вирджиния» — это третий элемент в списке.
Теперь выполните код, который находится ниже.
print(states[2])
Посмотрите на результат. Если использовать состояния[2], то можно получить имя состояния из списка. Как вы видите, имя списка указано в строке from. Таким образом, вы извлекаете строку из списка с помощью индексации.
Если вы хотите получить штат Мичиган, то вам нужно указать индексацию как States[3]. Это связано с тем, что Мичиган находится на третьей позиции в списке.
С использованием нарезки
С помощью нарезки списка вы можете извлечь из него одну или несколько строк. В данном случае из списка, который был представлен ранее, можно извлечь только одну строку.
Чтобы это сделать, вам нужно указать начальный и конечный индексы для извлечения строки из списка. Если вы не знакомы с нарезкой, рекомендуем ознакомиться с этим учебным материалом: «Нарезка в Python».
Например, рассмотрим список «состояний», который вы создали в предыдущем разделе. Извлечём из него строку с индексами от 0 до 2. Это можно сделать с помощью кода, который представлен ниже.
states = ['Florida', 'Ohio', 'Virginia', 'Michigan'] print(states[0:3])
Из вывода следует, что несколько строк (состояний) извлекаются из списка с использованием нарезки.
Рассмотрим пример: states[0:3]. При этом извлекается строка, начиная с индекса 0 и заканчивая индексом 2. Можно подумать, что можно было бы использовать индексы от 0 до 3, но это не так. При использовании нарезки конечный индекс не включается в результат. Поэтому вместо значений от 0 до 3 мы получаем строку, начиная с индекса 0 и заканчивая индексом 2.
С использованием List Comprehension
Понимание списка — это метод, который позволяет запускать цикл for внутри квадратных скобок []. С его помощью можно извлечь строки, начинающиеся с определённой буквы, используя метод startwith() в квадратных скобках [].
Например, у вас есть список названий продуктов в виде строк, который выглядит следующим образом:
product_names = ['Apple iPhone', 'Samsung Galaxy', 'Google Pixel', 'Apple iPhone', 'Samsung Galaxy']
Код ниже может извлечь из списка строки, начинающиеся с буквы «А».
extracted_product = [name for name in product_names if name.startswith('A')] print(extracted_product)
Посмотрите на результат: две строки, извлечённые из списка, начинаются с буквы «А» с помощью функции Beginswith () и понимания списка.
Давайте разберёмся в части кода:
[имя для имени в Product_names, если name. Beginswith(‘A’)].
Сначала цикл for name in Product_names перебирает каждый продукт в списке. Затем он берёт имя каждого продукта и проверяет, начинается ли оно с буквы «А», используя условие if name. Beginswith(‘A’).
Если название продукта начинается с буквы «А», оно добавляется в список. В результате мы извлекаем строки (названия продуктов), начинающиеся с буквы «А», например, [‘Apple iPhone’, ‘Apple iPhone’].