Операции со списком в Python, это довольно частое явление, в котором вы должны хорошо разбираться. В этой статье рассмотрим несколько практических задач, которые позволят более глубоко разобраться с данным материалом.
- Доступ к индексу списка
- Нарезка списков
- Объединение двух списков
- Последний элемент списка
- Удаление дубликата элемента из списка
Доступ к индексу списка
В ходе этого небольшого практического примера, вы поймете как обращаться к индексу списка через цикл for. Для более точного понимания работы данного скрипта, вам необходимо знать следующие темы:
Пример 1. Использование enumerate
my_list = [21, 44, 35, 11]
for index, val in enumerate(my_list):
print(index, val)
Результат:
0 21
1 44
2 35
3 11
Пример 2. Индексация с ненулевого значения
my_list = [21, 44, 35, 11]
for index, val in enumerate(my_list, start=1):
print(index, val)
Результат:
1 21
2 44
3 35
4 11
Думаю нет особого смысла разбирать этот короткий код. Дополнительный параметр start, обеспечивает нужный нам начальный индекс.
Срез списка python
В примерах ниже, я постарался привести несколько примеров, которые погут вам разобраться с тем, как устроен мир срезов списка в Python. Для более лучшего понимания, вам необходимо знать следующие темы:
Синтаксис среза списков в Python, выглядит следующим образом — [start:stop:step].
- start — это индекс списка, с которого начинается срез
- stop — это индекс списка, где заканчивается срез
- step — это шаг среза
Получаем все элементы списка
my_list = [1, 2, 3, 4, 5]
print(my_list[:])
Результат:
[1, 2, 3, 4, 5]
Получить все элементы после определенного элемента
my_list = [1, 2, 3, 4, 5]
print(my_list[2:])
Результат:
[3, 4, 5]
Хочу обратить ваше внимание на то, что индексация начинается с 0, при срезе в данном примере, пункт идущий по индексу 2, так же включен в срез.
Получить все элементы до определенного индекса
my_list = [1, 2, 3, 4, 5]
print(my_list[:2])
Результат:
[1, 2]
Элементы перед индексом 2 нарезаются. Элемент находящийся под индексом 2 исключен из конечного списка.
Получить все элементы по заданному интервалу
my_list = [1, 2, 3, 4, 5]
print(my_list[::2])
Результат:
[1, 3, 5]
Так же вы можете начать индексация с последнего элемента списка, для этого необходимо использовать отрицательный индекс.
my_list = [1, 2, 3, 4, 5]
print(my_list[::-2])
Результат:
[5, 3, 1]
Объединить два списка python
Ниже приведены несколько вариантов примеров, которые позволят вам произвести объединение списков.
Пример 1. Использование оператора +
list_1 = [1, 'a']
list_2 = [3, 4, 5]
list_joined = list_1 + list_2
print(list_joined)
Результат:
[1, 'a', 3, 4, 5]
Оператор сложения, имеет место быть, при складывании двух списков.
Пример 2. Использования оператора *
list_1 = [1, 'a']
list_2 = range(2, 4)
list_joined = [*list_1, *list_2]
print(list_joined)
Результат:
[1, 'a', 2, 3]
Оператор * распаковать список внутри списка или кортежа.
Пример 3. Сложить с уникальными элементами
list_1 = [1, 'a']
list_2 = [1, 2, 3]
list_joined = list(set(list_1 + list_2))
print(list_joined)
Результат:
[1, 2, 3, 'a']
Если при складывании двух списков, вам нужны только уникальные элементы, вы можете использовать list() и set(). Метод set(), отбирает уникальные значения, а list() сформирует список из полученных элементов.
Python последний элемент списка
Мы уже немного затрагивали тему получения последнего элемента списка, давайте закрепим немного этот материал. Для получения последнего элемента списка, достаточно воспользоваться отрицательной индексацией.
my_list = ['a', 'b', 'c', 'd', 'e']
print(my_list[-1])
Результат:
e
Важно учесть, что при использовании отрицательной индексации, отсчет начинается не с 0 как обычно, с 1. Ниже приведена небольшая иллюстрация того, как работает отрицательная индексация.
Удаление дубликата из списка Python
В этом примере, мы разберемся с тем, как очистить список от дубликатов. Мы уже несколько раз пользовались методом set(), сейчас на конкретном примере, я покажу вам, как удалять дубликаты со списков.
Пример 1. Используем метод set()
list_1 = [1, 2, 1, 4, 6]
print(list(set(list_1)))
Результат:
[1, 2, 4, 6]
В приведенном примере, мы поступили достаточно простым образом, метод set() убирает все дубликаты, а метод list(), преобразует получившиеся элементы в список.
Пример 2. Метод set()
list_1 = [1, 2, 1, 4, 6]
list_2 = [7, 8, 2, 1]
print(list(set(list_1) ^ set(list_2) ))
Результат:
[4, 6, 7, 8]
В приведенном выше примере все элементы, которые присутствуют в обоих списках удаляются.