Найти в Дзене
Каждодневье

Манипуляция данными в Python: использование списков

Оглавление

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

Пример списка в Python
Пример списка в Python

Пустой список создается парой способов:

-3

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

Как обратиться к элементу в списке?

Доступ к элементам списка по индексам.
Доступ к элементам списка по индексам.

Легко, по порядковому номеру в списке. Он же индекс списка. Если укажете минусовое значение, то список будет запрашиваться с конца. Например [-1] выдаст последний элемент списка.

-5

Список является итерируемым объектом. Это значит, что по данному списку можно пробежаться в цикле и запросить каждый элемент списка.

Как добавить в список?

Для этой цели применяется метод append(), который добавляет элемент в конец списка.

-6

Если требуется добавление в список через перебор элементов, то существует метод extend(). Позволяет расширить список содержимым любой последовательности, которая поддерживает итерацию. Давайте посмотрим как это работает.
Возьмем сокращенный вариант
numbers

-7

А как быть в ситуациях, когда надо добавить элемент в список, но не в конец, а например между «Один» и «Два»?

Тут применяется метод insert(), который принимает два аргумента:

  • положение в списке (индекс, куда вставлять элемент)
  • Элемент, который надо вставить.
-8

Вставленное значение смещает индексы

Как изменить элемент в списке?

Элементы в списке можно изменить. Для этого вам надо переназначить элемент по индексу. Будем использовать готовый список numbers

-9

Список можно отсортировать. Для этого есть метод sort()

[1, 2, 3, 3.33, 4, 5, 6, 7]
[1, 2, 3, 3.33, 4, 5, 6, 7]

Если в скобочках метода передать reverse=True, то получим обратную сортировку:

[7, 6, 5, 4, 3.33, 3, 2, 1]
[7, 6, 5, 4, 3.33, 3, 2, 1]

Но вот когда в списке у вас появятся циферки и букаФки, то вы столкнетесь с проблемой.

# Ошибка TypeError: '<' not supported between instances of 'int' and 'str'
# Ошибка TypeError: '<' not supported between instances of 'int' and 'str'

Ошибка говорит о том, что функция сортировки спотыкается на разнородных данных… не может понять что первым выводить.
Поэтому решение проблемы — только для функции сделать намек, что числа это тоже текст. В самом списке приведение к этому типу делать ненадо. Для этого в скобочки разместите следующий параметр
key=str

-13

Вы также можете найти индексный номер в списке для определенного элемента. Для этого используется метод index(). Метод возвращает индекс первого элемента, который задан в скобках

-14

Удаление элементов списка.

При удалении элементов можно использовать несколько методов — remove(), pop(), del(), clear()

remove() — метод, который удаляет первый совпадающий элемент из списка. При использовании этого метода пустые скобки недопустимы.

-15

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

-16

del() — ключевое слово, которое ставится перед списком. Далее идет имя списка и скобки с указанием индекса элемента, который подлежит удалению.

-17

У ключевого слова есть возможность задать диапазоны для удаления элементов. Для этого нужно передать начальное и конечное значение диапазона.

-18

clear() — метод, который очищает текущий список. Останутся только рожки да ножки — имя переменной и связь с областью в памяти устройства.

-19

Длина списка и число элементов

Когда требуется посчитать число элементов — встроенная функция len()
Возвращает длину (количество элементов) в объекте, которая может быть любым видом последовательности и коллекций.

А если требуется посчитать число вхождений в список, то это строковая функция
count()
Возвращает количество вхождений искомого элемента, указанного в скобочках.

-20

list.append(x) -> Вставляет одиночный элемент в конец списка list, непосредственно меняя список.

list.extend(x) -> Вставляет каждый элемент итерируемой последовательности x в конец списка

list.list.insert(i, x)-> Согласно установленного индекса i вставляет элемент X в список

list.list.sort() -> Сортирует список list по возрастанию. Параметр reverse=True (убывание).

list.index(x) -> Возвращает индекс первого вхождения элемента x из списка

list.list.remove(x) -> Удаляет первое вхождение элемента x из списка

list.list.pop(x) -> Удаляет и возвращает последний элемент x из списка

list.list.clear() -> Удаляет все элементы списка. В Python c версии 3.3.

list.count(x) -> Возвращает количество вхождений x в список

list.list.copy(x) -> Создание копии списка list. В Python c версии 3.3.

Подписывайтесь на канал. Буду переключать его на полезные посты о Python.