Что такое списки в python
Перейти к содержимому

Что такое списки в python

  • автор:

Списки, кортежи и словари

Для работы с наборами данных Python предоставляет такие встроенные типы как списки, кортежи и словари.

Список (list) представляет тип данных, который хранит набор или последовательность элементов. Во многих языках программирования есть аналогичная структура данных, которая называется массив.

Создание списка

Для создания списка применяются квадратные скобки [] , внутри которых через запятую перечисляются элементы списка. Например, определим список чисел:

numbers = [1, 2, 3, 4, 5]

Подобным образом можно определять списки с данными других типов, например, определим список строк:

people = ["Tom", "Sam", "Bob"]

Также для создания списка можно использовать функцию-конструктор list() :

numbers1 = [] numbers2 = list()

Оба этих определения списка аналогичны — они создают пустой список.

Список необязательно должен содержать только однотипные объекты. Мы можем поместить в один и тот же список одновременно строки, числа, объекты других типов данных:

objects = [1, 2.6, "Hello", True]

Для проверки элементов списка можно использовать стандартную функцию print, которая выводит содержимое списка в удобочитаемом виде:

numbers = [1, 2, 3, 4, 5] people = ["Tom", "Sam", "Bob"] print(numbers) # [1, 2, 3, 4, 5] print(people) # ["Tom", "Sam", "Bob"]

Конструктор list может принимать набор значений, на основе которых создается список:

numbers1 = [1, 2, 3, 4, 5] numbers2 = list(numbers1) print(numbers2) # [1, 2, 3, 4, 5] letters = list("Hello") print(letters) # ['H', 'e', 'l', 'l', 'o']

Если необходимо создать список, в котором повторяется одно и то же значение несколько раз, то можно использовать символ звездочки *, то есть фактически применить операцию умножения к уже существующему списку:

numbers = [5] * 6 # 6 раз повторяем 5 print(numbers) # [5, 5, 5, 5, 5, 5] people = ["Tom"] * 3 # 3 раза повторяем "Tom" print(people) # ["Tom", "Tom", "Tom"] students = ["Bob", "Sam"] * 2 # 2 раза повторяем "Bob", "Sam" print(students) # ["Bob", "Sam", "Bob", "Sam"]

Обращение к элементам списка

Для обращения к элементам списка надо использовать индексы, которые представляют номер элемента в списка. Индексы начинаются с нуля. То есть первый элемент будет иметь индекс 0, второй элемент — индекс 1 и так далее. Для обращения к элементам с конца можно использовать отрицательные индексы, начиная с -1. То есть у последнего элемента будет индекс -1, у предпоследнего — -2 и так далее.

people = ["Tom", "Sam", "Bob"] # получение элементов с начала списка print(people[0]) # Tom print(people[1]) # Sam print(people[2]) # Bob # получение элементов с конца списка print(people[-2]) # Sam print(people[-1]) # Bob print(people[-3]) # Tom

Для изменения элемента списка достаточно присвоить ему новое значение:

people = ["Tom", "Sam", "Bob"] people[1] = "Mike" # изменение второго элемента print(people[1]) # Mike print(people) # ["Tom", "Mike", "Bob"]

Разложение списка

Python позволяет разложить список на отдельные элементы:

people = ["Tom", "Bob", "Sam"] tom, bob, sam = people print(tom) # Tom print(bob) # Bob print(sam) # Sam

В данном случае переменным tom, bob и sam последовательно присваиваются элементы из списка people. Однако следует учитывать, что количество переменных должно быть равно числу элементов присваиваемого списка.

Перебор элементов

Для перебора элементов можно использовать как цикл for, так и цикл while.

Перебор с помощью цикла for :

people = ["Tom", "Sam", "Bob"] for person in people: print(person)

Здесь будет производиться перебор списка people, и каждый его элемент будет помещаться в переменную person.

Перебор также можно сделать с помощью цикла while :

people = ["Tom", "Sam", "Bob"] i = 0 while i < len(people): print(people[i]) # применяем индекс для получения элемента i += 1

Для перебора с помощью функции len() получаем длину списка. С помощью счетчика i выводит по элементу, пока значение счетчика не станет равно длине списка.

Сравнение списков

Два списка считаются равными, если они содержат один и тот же набор элементов:

numbers1 = [1, 2, 3, 4, 5] numbers2 = list([1, 2, 3, 4, 5]) if numbers1 == numbers2: print("numbers1 equal to numbers2") else: print("numbers1 is not equal to numbers2")

В данном случае оба списка будут равны.

Получение части списка

Если необходимо получить какую-то определенную часть списка, то мы можем применять специальный синтаксис, который может принимать следующие формы:

  • list[:end] : через параметр end передается индекс элемента, до которого нужно копировать список
  • list[start:end] : параметр start указывает на индекс элемента, начиная с которого надо скопировать элементы
  • list[start:end:step] : параметр step указывает на шаг, через который будут копироваться элементы из списка. По умолчанию этот параметр равен 1.
people = ["Tom", "Bob", "Alice", "Sam", "Tim", "Bill"] slice_people1 = people[:3] # с 0 по 3 print(slice_people1) # ["Tom", "Bob", "Alice"] slice_people2 = people[1:3] # с 1 по 3 print(slice_people2) # ["Bob", "Alice"] slice_people3 = people[1:6:2] # с 1 по 6 с шагом 2 print(slice_people3) # ["Bob", "Sam", "Bill"]

Можно использовать отрицательные индексы, тогда отсчет будет идти с конца, например, -1 - предпоследний, -2 - третий сконца и так далее.

people = ["Tom", "Bob", "Alice", "Sam", "Tim", "Bill"] slice_people1 = people[:-1] # с предпоследнего по нулевой print(slice_people1) # ["Tom", "Bob", "Alice", "Sam", "Tim", "Bill"] slice_people2 = people[-3:-1] # с третьего с конца по предпоследний print(slice_people2) # [ "Sam", "Tim"]

Методы и функции по работе со списками

Для управления элементами списки имеют целый ряд методов. Некоторые из них:

  • append(item) : добавляет элемент item в конец списка
  • insert(index, item) : добавляет элемент item в список по индексу index
  • extend(items) : добавляет набор элементов items в конец списка
  • remove(item) : удаляет элемент item. Удаляется только первое вхождение элемента. Если элемент не найден, генерирует исключение ValueError
  • clear() : удаление всех элементов из списка
  • index(item) : возвращает индекс элемента item. Если элемент не найден, генерирует исключение ValueError
  • pop([index]) : удаляет и возвращает элемент по индексу index. Если индекс не передан, то просто удаляет последний элемент.
  • count(item) : возвращает количество вхождений элемента item в список
  • sort([key]) : сортирует элементы. По умолчанию сортирует по возрастанию. Но с помощью параметра key мы можем передать функцию сортировки.
  • reverse() : расставляет все элементы в списке в обратном порядке
  • copy() : копирует список

Кроме того, Python предоставляет ряд встроенных функций для работы со списками:

  • len(list) : возвращает длину списка
  • sorted(list, [key]) : возвращает отсортированный список
  • min(list) : возвращает наименьший элемент списка
  • max(list) : возвращает наибольший элемент списка

Добавление и удаление элементов

Для добавления элемента применяются методы append() , extend и insert , а для удаления - методы remove() , pop() и clear() .

people = ["Tom", "Bob"] # добавляем в конец списка people.append("Alice") # ["Tom", "Bob", "Alice"] # добавляем на вторую позицию people.insert(1, "Bill") # ["Tom", "Bill", "Bob", "Alice"] # добавляем набор элементов ["Mike", "Sam"] people.extend(["Mike", "Sam"]) # ["Tom", "Bill", "Bob", "Alice", "Mike", "Sam"] # получаем индекс элемента index_of_tom = people.index("Tom") # удаляем по этому индексу removed_item = people.pop(index_of_tom) # ["Bill", "Bob", "Alice", "Mike", "Sam"] # удаляем последний элемент last_item = people.pop() # ["Bill", "Bob", "Alice", "Mike"] # удаляем элемент "Alice" people.remove("Alice") # ["Bill", "Bob", "Mike"] print(people) # ["Bill", "Bob", "Mike"] # удаляем все элементы people.clear() print(people) # []

Проверка наличия элемента

Если определенный элемент не найден, то методы remove и index генерируют исключение. Чтобы избежать подобной ситуации, перед операцией с элементом можно проверять его наличие с помощью ключевого слова in :

people = ["Tom", "Bob", "Alice", "Sam"] if "Alice" in people: people.remove("Alice") print(people) # ["Tom", "Bob", "Sam"]

Выражение if "Alice" in people возвращает True, если элемент "Alice" имеется в списке people. Поэтому конструкция if "Alice" in people может выполнить последующий блок инструкций в зависимости от наличия элемента в списке.

Удаление с помощью del

Python также поддерживает еще один способ удаления элементов списка - с помощью оператора del . В качестве параметра этому оператору передается удаляемый элемент или набор элементов:

people = ["Tom", "Bob", "Alice", "Sam", "Bill", "Kate", "Mike"] del people[1] # удаляем второй элемент print(people) # ["Tom", "Alice", "Sam", "Bill", "Kate", "Mike"] del people[:3] # удаляем по четвертый элемент не включая print(people) # ["Bill", "Kate", "Mike"] del people[1:] # удаляем со второго элемента print(people) # ["Bill"]

Изменение подсписка

Для изменения подсписка - набора элементов в списке можно использовать вышерассмотренный синтаксис [start:end] :

nums = [10, 20, 30, 40, 50] nums[1:4]=[11, 22] print(nums) # [10, 11, 22, 50]

Здесь выражение nums[1:4] фактически обращается к подсписку [20, 30, 40] . Присвоение этому подсписку списка [11, 22] позволяет заменить элемента с 1 по 4 индекс не включая на элементы [11, 22] . И после изменения получим список [10, 11, 22, 50]

Подсчет вхождений

Если необходимо узнать, сколько раз в списке присутствует тот или иной элемент, то можно применить метод count() :

people = ["Tom", "Bob", "Alice", "Tom", "Bill", "Tom"] people_count = people.count("Tom") print(people_count) # 3

Сортировка

Для сортировки по возрастанию применяется метод sort() :

people = ["Tom", "Bob", "Alice", "Sam", "Bill"] people.sort() print(people) # ["Alice", "Bill", "Bob", "Sam", "Tom"]

Если необходимо отсортировать данные в обратном порядке, то мы можем после сортировки применить метод reverse() :

people = ["Tom", "Bob", "Alice", "Sam", "Bill"] people.sort() people.reverse() print(people) # ["Tom", "Sam", "Bob", "Bill", "Alice"]

При сортировке фактически сравниваются два объекта, и который из них "меньше", ставится перед тем, который "больше". Понятия "больше" и "меньше" довольно условны. И если для чисел все просто - числа расставляются в порядке возрастания, то для строк и других объектов ситуация сложнее. В частности, строки оцениваются по первым символам. Если первые символы равны, оцениваются вторые символы и так далее. При чем цифровой символ считается "меньше", чем алфавитный заглавный символ, а заглавный символ считается меньше, чем строчный.

Таким образом, если в списке сочетаются строки с верхним и нижним регистром, то мы можем получить не совсем корректные результаты, так как для нас строка "bob" должна стоять до строки "Tom". И чтобы изменить стандартное поведение сортировки, мы можем передать в метод sort() в качестве параметра функцию:

people = ["Tom", "bob", "alice", "Sam", "Bill"] people.sort() # стандартная сортировка print(people) # ["Bill", "Sam", "Tom", "alice", "bob"] people.sort(key=str.lower) # сортировка без учета регистра print(people) # ["alice", "Bill", "bob", "Sam", "Tom"]

Кроме метода sort мы можем использовать встроенную функцию sorted , которая имеет две формы:

  • sorted(list) : сортирует список list
  • sorted(list, key) : сортирует список list, применяя к элементам функцию key
people = ["Tom", "bob", "alice", "Sam", "Bill"] sorted_people = sorted(people, key=str.lower) print(sorted_people) # ["alice", "Bill", "bob", "Sam", "Tom"]

При использовании этой функции следует учитывать, что эта функция не изменяет сортируемый список, а все отсортированные элементы она помещает в новый список, который возвращается в качестве результата.

Минимальное и максимальное значения

Встроенный функции Python min() и max() позволяют найти минимальное и максимальное значения соответственно:

numbers = [9, 21, 12, 1, 3, 15, 18] print(min(numbers)) # 1 print(max(numbers)) # 21

Копирование списков

При копировании списков следует учитывать, что списки представляют изменяемый (mutable) тип, поэтому если обе переменных будут указывать на один и тот же список, то изменение одной переменной, затронет и другую переменную:

people1 = ["Tom", "Bob", "Alice"] people2 = people1 people2.append("Sam") # добавляем элемент во второй список # people1 и people2 указывают на один и тот же список print(people1) # ["Tom", "Bob", "Alice", "Sam"] print(people2) # ["Tom", "Bob", "Alice", "Sam"]

Это так называемое "поверхностное копирование" (shallow copy). И, как правило, такое поведение нежелательное. И чтобы происходило копирование элементов, но при этом переменные указывали на разные списки, необходимо выполнить глубокое копирование (deep copy). Для этого можно использовать метод copy() :

people1 = ["Tom", "Bob", "Alice"] people2 = people1.copy() # копируем элементы из people1 в people2 people2.append("Sam") # добавляем элемент ТОЛЬКО во второй список # people1 и people2 указывают на разные списки print(people1) # ["Tom", "Bob", "Alice"] print(people2) # ["Tom", "Bob", "Alice", "Sam"]

Соединение списков

Для объединения списков применяется операция сложения (+):

people1 = ["Tom", "Bob", "Alice"] people2 = ["Tom", "Sam", "Tim", "Bill"] people3 = people1 + people2 print(people3) # ["Tom", "Bob", "Alice", "Tom", "Sam", "Tim", "Bill"]

Списки списков

Списки кроме стандартных данных типа строк, чисел, также могут содержать другие списки. Подобные списки можно ассоциировать с таблицами, где вложенные списки выполняют роль строк. Например:

people = [ ["Tom", 29], ["Alice", 33], ["Bob", 27] ] print(people[0]) # ["Tom", 29] print(people[0][0]) # Tom print(people[0][1]) # 29

Чтобы обратиться к элементу вложенного списка, необходимо использовать пару индексов: people[0][1] - обращение ко второму элементу первого вложенного списка.

Добавление, удаление и изменение общего списка, а также вложенных списков аналогично тому, как это делается с обычными (одномерными) списками:

people = [ ["Tom", 29], ["Alice", 33], ["Bob", 27] ] # создание вложенного списка person = list() person.append("Bill") person.append(41) # добавление вложенного списка people.append(person) print(people[-1]) # ["Bill", 41] # добавление во вложенный список people[-1].append("+79876543210") print(people[-1]) # ["Bill", 41, "+79876543210"] # удаление последнего элемента из вложенного списка people[-1].pop() print(people[-1]) # ["Bill", 41] # удаление всего последнего вложенного списка people.pop(-1) # изменение первого элемента people[0] = ["Sam", 18] print(people) # [ ["Sam", 18], ["Alice", 33], ["Bob", 27]]

Перебор вложенных списков:

people = [ ["Tom", 29], ["Alice", 33], ["Bob", 27] ] for person in people: for item in person: print(item, end=" | ")
Tom | 29 | Alice | 33 | Bob | 27 |

Концепция списков — Python: Списки

Список — структура данных, предназначенная для хранения упорядоченных наборов элементов. Слово «упорядоченные» в этом случае означает, что элементы структуры хранятся в том порядке, в котором они были добавлены.

Элементы списка индексированы, то есть имеют порядковый номер. Нумерация всегда начинается с нуля и всегда монотонна. Это значит, что у каждого последующего элемента индекс возрастает на единицу — такую нумерацию еще называют сквозной. При удалении элементов из начала или середины списка, а также при вставке элементов в середину, индексы пересчитываются и указанные выше свойства нумерации сохраняются.

Неизменяемость и изменяемость

Мы уже знаем, что при конкатенации двух строк получается новая строка, а при сложении двух чисел получается новое число.

Рассмотренные ранее кортежи:

  • Позволяют сгруппировать элементы, а затем разобрать группу на составляющие
  • Могут быть собраны в кортеж большего размера
  • Не позволяют менять состав элементов — только создавать новые кортежи из элементов старых

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов

Наши выпускники работают в компаниях:

Что такое списки в Python и как с ними работать?

В языках программирования, в том числе в Python, есть символы, числа и классы. А есть коллекции, к которым относятся структуры данных, — массивы и списки. Как раз о последних мы и хотим поговорить с вами сегодня, потому как именно списки называют одними из самых важных объектов в Python.

Статья будет особенно полезной для тех, кто уже находится в процессе освоения Python и в том числе проходит наш курс «Основы Python с нуля до функционального проекта» . Мы будем работать с примерами, поэтому рассчитываем, что у вас уже установлена среда разработки Python.

Что такое списки

Списки в Python — это упорядоченные наборы объектов, нумерация которых начинается с 0. В списке могут содержаться разные объекты — от целых чисел до строк. Кроме того, внутри списков могут храниться дополнительные списки.

У каждого элемента в списке есть свой номер, благодаря которому можно быстро обратиться именно к нему. Схематически это выглядит следующим образом:

Здесь важно добавить, что в одном списке могут содержаться данные разных типов. К примеру, строки и числа:

Важное преимущество списков в Python — их можно менять буквально на ходу. Вы можете удалять отдельные элементы, добавлять новые, менять их местами и так далее. Главное — сохранять нумерацию, чтобы можно было обращаться к этим элементам. При этом когда вы добавляете объект, Python автоматически выделяет под него память. А когда удаляете — высвобождает ее.

Создание списка в Python

Давайте для лучшего понимания перейдем к практической части!

Существует несколько способов создания списка в Python:

  • Перечисление элементов в квадратных [] скобках

Выглядит это следующим образом:

Здесь стоит еще раз напомнить, что нумерация в списках Python начинается с нуля. То есть, если вы используете команду print(numbers[0]) , на экран будет выведена единица.

  • Обработка интегрируемого объекта при помощи функции list()

В данном случае список формируется таким образом:

Помимо прочего можно задействовать специальные генераторы списков, с помощью которых вы можете применять заданные выражения к каждому элементу в последовательности. К примеру, вы хотите создать список (list), в котором содержатся числа от 1 до 5. Это будет выглядеть вот так:

Как и было сказано выше, в Python можно использовать вложенные списки. Это делается путем использование квадратных скобок внутри других квадратных скобок:

То есть, мы получаем объект, который состоит из чисел 1 и 2, а также вложенного списка с числами 3 и 4. Ничего сложного, правда? Главное — не забывать закрывать все квадратные скобки.

Операции над списками Python

Хранение данных в списках — это удобно. Но какая в этом практическая польза для разработчика? А польза в том, что с такими списками можно осуществлять множество самых разных операций. Наиболее популярные из них мы и рассмотрим далее.

Встроенные функции

В Python есть 4 простые встроенные функции, с помощью которых можно узнать длину списка, выполнить его сортировку, возвращать минимальное и максимальное значение. Рассмотрим эти функции на примерах!

  • sorted() — возвращает отсортированный список:
  • min() и max() — возвращают наименьший и наибольший элемент из списка:

Кстати, есть несколько способов, с помощью которых можно автоматизировать процесс создания списков. Например, вот так легко можно сформировать простой список со значениями:

Есть и более сложный вариант. Например, можно указать определенные условия для генерации элементов:

Срезы (slice) списка

Благодаря срезам вы можете получить определенное подмножество значений. Например, используя следующий код, вы можете вернуть список с элементами, начиная с 0-индекса, но исключив индекс 2 и выше:

Похожим образом можно вывести все, кроме элемента на третьей позиции:

А вот так можно вывести все, начиная с 1 и до конца:

Методы списков Python

Для списков создано довольно много методов. Рассмотрим некоторые из них с примерами кода.

  • Index — начинает поиск совпадений слева направо, после чего возвращает положение элемента с совпадающим значением:
  • Count — автоматически подсчитывает количество совпадений значения в списке. То есть, мы говорим именно о численности совпадений, а не самом значении:
  • Append — позволяет добавить указанное значение в самый конец существующего списка:
  • Sort — позволяет автоматически отсортировать список в Python. Обратите внимание, что по умолчанию осуществляется сортировка от меньшего к большему:

Однако вам не обязательно использовать дефолтный метод сортировки. Можно, например, выполнить сортировку в обратном порядке — от большего к меньшему:

  • Insert — вставляет указанный элемент перед заданным индексом. Нужно всего лишь указать, перед каким элементом он должен быть установлен:
  • Remove — удаляет первое обнаруженное вхождение указанного элемента в списке. При этом остальные вхождения не удаляются:
  • Extend — метод похож на append() , но обладает одним важным преимуществом. С его помощью можно добавлять не только элементы, но и целые списки:
  • Pop — удаляет элемент в заданном индексе и выводит удаленный элемент. При этом если вы не укажете индекс, то метод удалит последний элемент:
  • Join — позволяет преобразовать список в строку. Список Python должен состоять из строк, а разделитель прописывают в кавычках перед методом:

Главное о списках в Python

Списки — это очень удобная структура данных, позволяющая работать с итерируемыми объектами. На первый взгляд может быть не совсем понятно, какое у них практическое применение и в каких случаях их нужно использовать. Но давайте представим простой пример. Допустим, вы хотите написать скрипт, который будет автоматически проверять, является ли определенная модель автомобиля разработкой компании Tesla.

Для решения этой задачи как раз отлично и подходит работа со списками:

То есть, мы довольно легко написали простой скрипт, автоматизирующий задачу и экономящий немного времени. А ведь это весьма примитивный пример. Списки в Python открывают просто колоссальные возможности. Но чтобы эффективно работать с ними, необходимо потратить время на изучение теории и практические задачи.

Напоследок давайте закрепим самое главное из нашей статьи:

  1. Список в Python — это массив однотипных или неоднотипных элементов, у каждого из которого есть свой номер (индекс).
  2. Нумерация элементов в списках Python начинается с 0, а не с 1.
  3. В качестве «ключей» используются индексы типа 0, 1, 2.
  4. Элементы списка можно переопределять.
  5. Можно добавлять новые элементы в существующий список или удалять их.
  6. Списки можно вкладывать в другие списки.
  7. Для списков создано множество функций, позволяющих гибко работать с элементами и создавать скрипты разной сложности.

Напоследок хотим дать вам небольшой совет: больше практики!

Как работать со списками в Python

Учимся добавлять и изменять элементы, объединять и копировать списки.

Как работать со списками в Python

Анастасия Хамидулина
Автор статьи
2 мая 2022 в 11:01

В современных языках программирования есть предустановленные типы: символы, числа или классы. Есть и коллекции — массивы, списки и прочие структуры данных — множества элементов фиксированной или динамической размерности.

При объявлении переменной под объект выделяется оперативная память. Например, для строки в четыре символа — восемь байт. Каждый символ занимает адрес в оперативной памяти, а строка представляет собой массив этих адресов. В C-подобных языках массивы создаются определенного размера, под тип объектов. В Python же нет ограничений ни по типу элементов множества, ни по его размерности. То есть список в Python — это динамическая коллекция указателей.

Как решать типовые задачи

PEP8 для Python — правила красивого кода

�� Объявить список

Синтаксическая конструкция для создания списка Python:

mylst = [1, 2, 3, 4, 5]

Mylst — название переменной. В скобках указали элементы.

В Python есть ключевое слово list(). Это функция, которая либо создает пустой список, либо приводит к списку итерируемый объект. Чтобы создать пустой объект списка с помощью функции, напишите:

mylst = list()

�� Обратиться к элементу

Списки — это множества элементов. Чтобы обратиться к ним, указывают индекс — порядковый номер. В отличие, например, от словаря, который позволяет получать значение по ключу. Индекс первого элемента — 0, второго — 1, третьего — 2.

Так обратитесь к пятому элементу списка:

mylst = [1, 2, 3, 4, 5] print(mylst[4]) 5

Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

�� Добавить элемент

Сделайте это с помощью встроенной функции append():

mylst = [1, 2, 3, 4, 5] mylst.append(6) print(mylst) [1, 2, 3, 4, 5, 6]

Либо с помощью метода insert(), который принимает два аргумента — индекс и значение:

mylst = [1, 2, 3, 4, 5] mylst.insert(1, 25) print(mylst) [1, 25, 2, 3, 4, 5]

❗ Если добавить элемент с помощью этого метода, произойдет смещение, а не его замена.

�� Изменить элемент

Для этого установите новое значение по его индексу:

mylst = [1, 2, 3, 4, 5] mylst[1] = None print(mylst) [1, None, 3, 4, 5]

В Python необязательно, чтобы элементы коллекции были одного типа.

�� Удалить элемент

Для этого воспользуйтесь встроенной функцией del():

mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1] del mylst[2] print(mylst) [1, 2, 4, 5, 4, 3, 2, 1]

Либо примените метод удаления remove():

mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1] mylst.remove(2) print(mylst) [1, 3, 4, 5, 4, 3, 2, 1]

�� Проверить на вхождение

Чтобы проверить, есть ли указанный элемент в списке, воспользуйтесь ключевым словом in:

mylst = [1, 2, 3, 4, 5] print(None in mylst) False print(3 in mylst) True

�� Объединить списки

Вызовите метод extend():

mylst = [1, 2] mylst1 = [3, 4] mylst2 = [5] mylst.extend(mylst1) print(mylst) [1, 2, 3, 4] mylst.extend(mylst2) print(mylst) [1, 2, 3, 4, 5]

Или оператор сложения с присваиванием:

mylst = [1, 2] mylst1 = [3, 4] mylst2 = [5] mylst += mylst1 print(mylst) [1, 2, 3, 4] mylst += mylst2 print(mylst) [1, 2, 3, 4, 5]

�� Копировать список

Воспользуйтесь методом списков copy():

mylst = [1, 2, 3, 4, 5] mylst_copy = mylst.copy() print(mylst) [1, 2, 3, 4, 5] print(mylst_copy) [1, 2, 3, 4, 5]

Либо создайте полный срез:

mylst = [1, 2, 3, 4, 5] mylst_copy = mylst[::] print(mylst) [1, 2, 3, 4, 5] print(mylst_copy) [1, 2, 3, 4, 5]

�� Выполнить итерацию по списку

mylst = [1, 2, 3, 4, 5] for item in mylst: print(item) 1 2 3 4 5

Итерацию еще выполняют с помощью цикла while:

mylst = [1, 2, 3, 4, 5] i = 0 while True: try: print(mylst[i]) except IndexError: print("Done!") break i += 1 1 2 3 4 5 Done!

«Если вы думаете, что хорошо разбираетесь в списках, подумайте еще раз. Дело в том, что списки в Python больше похожи на то, что мы привыкли называть массивами в других языках программирования, а не на связанные списки, которые обычно приходят на ум при слове „список“».

«Изучаем программирование на Python»

По-настоящему хорошо изучить язык можно на курсе Skypro «Python-разработчик». Программа выстроена от простого к сложному: сначала необходимый минимум теории, а потом много практики, чтобы усвоить знания и отработать навыки. Всё это — с поддержкой опытных наставников и кураторов.

Методы списков

✔️ index

Позволяет узнать индекс элемента, возвращает его при первом совпадении:

mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1] print(mylst.index(3)) 2

✔️ count

Позволяет получить количество элементов списка:

mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1] count_for_one = mylst.count(1) print(count_for_one) 2 count_for_five = mylst.count(5) print(count_for_five) 1

✔️ clear

Полностью очищает список:

mylst = [1, 2, 3, 4, 5] mylst.clear() print(mylst) []

✔️ sort

Сортирует список по указанному ключу. Принимает два необязательных аргумента: key — ключ, по которому производят сортировку, булевый флаг reverse — сортирует объекты в обратном порядке. По умолчанию в качестве ключа используют значение переменной:

mylst = [1, 3, 2, 4, 5] mylst.sort() # reverse=False print(mylst) [1, 2, 3, 4, 5]

✔️ reverse

Инвертирует последовательность элементов:

mylst = [1, 2, 3, 4, 5] mylst.reverse() print(mylst) [5, 4, 3, 2, 1]

✔️ pop

Позволяет получить элемент и удаляет его из списка. Принимает индекс в качестве необязательного аргумента. По умолчанию это последний элемент:

mylst = [1, 2, 3, 4, 5] x = mylst.pop() print(x) 5 print(mylst) [1, 2, 3, 4] y = mylst.pop(2) print(y) 3 print(mylst) [1, 2, 4]

Встроенные функции

✅ Получение длины любой коллекции

Используйте функцию len():

mylst = [1, 2, 3, 4, 5] list_length = len(mylst) print(list_length) 5

✅ Возврат элемента с максимальным значением

Используйте функцию max():

mylst = [1, 2, 3, 4, 5, 4, 3, 2, 1] max_value = max(mylst) print(max_value) 5

Возврат элемента с минимальным значением

Используйте функцию min():

mylst = [1, 2, 3, 4, 5] min_value = min(mylst) print(min_value) 1

Приведение к типу

Из любого итерируемого объекта можно получить список. Для этого передайте итерируемый объект функции list(). Этим объектом может быть строка, множество, кортеж или генератор:

myset = mytuple = (5, 6) mystring = "Test string" lst1 = list(myset) lst2 = list(mytuple) lst3 = list(mystring) print(lst1) [1, 2, 3, 4] print(lst2) [5, 6] print(lst3) ['T', 'e', 's', 't', ' ', 's', 't', 'r', 'i', 'n', 'g']

Работа со срезами

Срезы позволяют создавать новые списки на основе существующего. Можно получить полную копию списка или некоторые элементы. Для этого используют шаг или указывают начальный и крайний индексы:

mylst = [1, 2, 3, 4, 5] mylst_slice_0 = mylst[::] # полная копия print(mylst_slice_0) [1, 2, 3, 4, 5] mylst_slice_1 = mylst[0:2] # крайний индекс (не включается в срез) print(mylst_slice_1) [1, 2] mylst_slice_2 = mylst[::2] # указание шага print(mylst_slice_2) [1, 3, 5]

Синтаксис работы со срезами:

# имя переменной[стартовый индекс:конечный индекс:шаг] variable_name[start_index:end_index:step]

Срезы часто используют в своей работе аналитики данных. Это позволяет им автоматизировать и ускорить решение некоторых задач. Основы Python для анализа данных можно освоить на курсе Skypro «Аналитик данных».

Генератор списков

Эта конструкция позволяет легко создавать списки:

mylst = [_ for _ in range(6)] print(mylst) [0, 1, 2, 3, 4, 5]

Вы можете указать условия для генерации элементов:

mylst = [x if x % 2 == 0 else "odd" for x in range(20)] print(mylst) [0, 'odd', 2, 'odd', 4, 'odd', 6, 'odd', 8, 'odd', 10, 'odd', 12, 'odd', 14, 'odd', 16, 'odd', 18, 'odd']

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *