В этой части учебника мы рассмотрим списки в Python 3, что это такое и как с ними работать, будет очень интересно.
Что такое списки в Python 3:
Для начала рассмотрим что такое списки в Python 3, если кратко говоря, то это тип данных который позволяет в себе хранить несколько данных в одном в месте, даже сотни данных.
Также стоит сказать, что строка в Python тоже список, поэтому всё что применимо к ним, применимо и к строкам.
Ещё есть несколько подобных типов данных, но они кратко поговорим в самом конце части.
Как сделать список в Python 3:
Что бы создать список нужно просто в квадратных скобках перечислить данные через запятую, для наглядности вот вам пример с последующем выводом:
1 2 3 4 | # Создаём список list_num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Выводим список print(list_num) |
Как видите всё очень просто, мы создаём список и выводим его, также кроме чисел вы можете использовать символы, строки, числа с плавающей точкой и другие типы данных.
Вот что у нас вывелось:
Как видите у нас вывелся весь список.
Работа со спискам в Python:
Теперь перейдём к работе со списками в языке программирования Python, мы рассмотрим методы и основные принципы работы.
Ввод и вывод списка в Python 3:
Для начала разберём сам ввод списка, тут на самом деле всё очень просто, вот пример:
1 2 3 4 | # Ввод списка list_num = list(map(int, input().split())) # Вывод списка print(list_num) |
Как работает этот код объяснять в подробности не буду, но list()
создаёт список, map()
позволяет применить функцию к каждому элементу, input()
вводит данные, а метод split()
разделяет строку на символы, по умолчанию это пробел.
То есть таким образом мы можем вводить массив через пробел, вот результат работы:
Как видите мы действительно ввели данные через пробел и у нас получился обычный список.
Как вы уже поняли, для вывода списка мы просто его объявляем в качестве параметра в print()
, но что если нам надо его вывести в качестве строки, для этого будем использовать цикл for
, вот пример:
1 2 3 4 5 | # Вводим список list_num = list(map(int, input().split())) # Выводим список for i in list_num: print(i, end=" ") |
Единственное что тут есть интересное, это второй параметр end в print()
, он означает, что после вывода будет ставится не перенос строки, как это по умолчанию, а пробел.
Вот результат:
Как видите, то что мы ввели, то и вывелось, думаю с этим всё понятно.
Методы и функции списков в Python 3:
Теперь расскажу о нескольких особо важных методов которые есть в Python для работы со списками:
- list.append(x) — Добавляет элемент в конец списка;
- list.extend(L) — Добавляет в конец списка list, элементы из списка L;
- list.insert(i, x) — Вставляет на позицию i, элемент x;
- list.pop() — Удаляет последний элемент;
- list.reverse() — Переворачивает список;
Это основные методы для списка которые вы будите использовать, list
это и есть список над которым делаем все действия.
Также есть ещё несколько полезных функций, для работы со списками:
- len(list) — Возвращает количество элементов списка;
- min(list) — Возвращает минимальный элемент списка;
- max(list) — Возвращает максимальный элемент списка;
- del list[i] — Удаляет элемент по индексу i;
Как видите функций тоже предостаточно.
Срезы в Python 3:
Теперь посмотрим на ещё одну интересную конструкцию, это срез списка python 3, на самом деле, это отдельная тема для статьи, но тут я постараюсь кратко, но объяснить её работу.
Суть в том, что вы можете срезать списки, тем самым удалять или менять их содержание, вот примеры их использования:
1 2 3 4 5 6 7 8 9 10 | # Создаём массив list_num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(list_num[:]) # Выводим весь список print(list_num[3:]) # Выводим список начиная с индекса 3 print(list_num[:5]) # Выводим список до индекса 5 print(list_num[2:5]) # Выводим список с индекса 2 по 5 list_num[2:5] = [0, 9, 7] # Заменяем элементы списка print(list_num) # Выводим список со заменами list_num[2:2] = [1, 2, 3] # Вставляем элементы перед индексом 2 print(list_num) # Выводим список с новыми элементами |
Теперь давайте выведем что у нас получилось:
Надеюсь у вас получилось сопоставить код и строку вывода, но как видите благодаря срезам мы можете выводить только часть списка, менять и добавлять новые значения.
Также вы можете скопировать весь список в другою переменную, вот как это делается:
1 2 3 4 | # Создаём список list_num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Копируем список list_num_2 = list_num[:] |
Таким образом вы скопировали список в другую переменную.
Важно:
Если вы просто присвоите значение списка переменной
(list_num_2 = list_num
), то вы присвоите ссылку на список, и по сути будите работать в двух разных переменных с одним списком, поэтому для этого нужно использовать срезы.
Генераторы списков в Python 3:
Последние что стоит рассмотреть, так это, что такое генераторы списков в Python 3, хотя само слово говорит уже само за себя, в Python вы можете генерировать списки, иногда это бывает полезно.
Для этого используете своеобразный цикл for
, вот пример использования:
1 2 3 4 5 6 7 8 9 10 | # Генерируем список с 1 до 10 list_num_1 = [i for i in range(1, 10)] # Генерируем список с 1 до 10 и умножаем на пять list_num_2 = [i*5 for i in range(1, 10)] # Генерируем список с 1 до 10 и умножаем на пять если элемент кратен двум list_num_3 = [i*5 for i in range(1, 10) if i % 2 == 0] print(list_num_1) # Выводим первый список print(list_num_2) # Выводим второй список print(list_num_3) # Выводим третий список |
Давайте немного разберём что к чему тут, первый список просто от 1 до 10, i тут это значение элемента, над которой мы можем совершать действия, это видно из примеров ниже.
Второй пример, тоже самое, что и первый, но мы уже умножаем все значения на пять, что делает их ещё больше.
В третий пример, мы добавили условие, которое проверяет, если i кратно 2, то возвращаем значение, в итоге список у нас равен значения кратным двум которые умножены на пять.
Вот результат, что у нас в итоге получилось:
Как видите тоже ы целом чего сложного нет, хотя надо на мой взгляд это запомнить и записать, так это сложно запомнить.
Вывод:
В этой части учебника мы рассмотрели списки в Python 3, как с ними работать, что такое срезы и генераторы.
Также скажу, что срезы могут работать и со строками, поэтому для них они тоже применимы.