Списки / Массивы в Python - функции и методы списков
avatar
7 | (offline)
❤️‍🔥Notehunter Developer
Добавлено:
Категория: Основы «Python»
Комментариев: 0

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

Также вы можете почитать про классические массивы из модуля array: Массивы (Array) в Python - модуль array

Что такое список (list) в Python?

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

Как объявлять списки в Python?

Объявление списка — это первый и самый важный шаг в его создании. Есть несколько способов объявить список в Python.

Первый способ:

# Объявляем список
elements = [24, 29, 26, 31, 27, 32]
# Выводим список и узнаем тип данных
print(elements)
print(type(elements))

Результат:

>>> [24, 29, 26, 31, 27, 32]
>>> <class 'list'>

В этом примере мы уже ввели данные в список. Чтобы объявить пустой список, необходимо сделать так:

# Объявляем пустой список
elements = []
# Выводим список и узнаем тип данных
print(elements)
print(type(elements))

Результат:

>>> []
>>> <class 'list'>

Второй способ объявления списка:

# Объявляем пустой список
elements = list()
# Выводим список и узнаем тип данных
print(elements)
print(type(elements))

Результат:

>>> []
>>> <class 'list'>

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

# Объявляем список
elements = [24, 29, 'python']
# Выводим список с индексом 2
print(elements[2])

Результат:

>>> python

Индекс — это порядковый номер элемента в списке. В примере выше индексы (позиции в списке) будут соответственно: 0, 1, 2.

Существует также отрицательный индекс. 

# Объявляем список
elements = [24, 29, 'python']
# Выводим список с индексом -1
print(elements[-1])

Результат:

>>> python

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

Добавление в список

Добавление, изменение, удаление элементов доступно в списках. Рассмотрим каждый способ замены элементов на примерах.

Для добавления нового элемента в список используется list.append(x), где list — список, x — желаемое значение.

# Объявляем список
elements = [24, 29, 'python']
# Добавляем новый элемент
elements.append('django')
# Выводим список
print(elements)

Результат

>>> [24, 29, 'python', 'django']

Добавление в список на указанную позицию

Важно обратить внимание на метод list.insert(i,x), где list — список, i — позиция, x — искомое значение.

# Объявляем список
elements = [5, 6, 8]
# Добавляем на позицию 2, после 6
elements.insert(2, 7)
# Выводим список
print(elements)

Результат:

>>> [5, 6, 7, 8]

Изменение элементов в списке

Изменение элементов списка происходит следующим образом: необходимо выбрать элемент по индексу и присвоить новое значение.

# Объявляем список
elements = [5, 6, 8]
# Изменяем по индексу
elements[0] = 1
elements[1] = 2
elements[2] = 3
# Выводим список
print(elements)

Результат:

[1, 2, 3]

Удаление элемента из списка

Для удаления из списка используйте конструкцию del list, где list — список, i — индекс (позиция) элемента в списке:

# Объявляем список
elements = [1, 2, 'Python', 3]
# Удаляем элемент под индексом 2
del elements[2]
# Выводим список
print(elements)

Результат:

[1, 2, 3]

Удаление диапазонами:

# Объявляем список
elements = [1, 2, 'Python', 3, 4, 5, 'Django']
# Удаляем элементы после с 4 индекса (включительно)
del elements[4:]
# Выводим список
print(elements)

Результат:

[1, 2, 'Python', 3]

И наоборот

# Объявляем список
elements = [1, 2, 'Python', 3, 4, 5, 'Django']
# Удаляем в обратную сторону
del elements[:4]
# Выводим список
print(elements)

Результат:

[4, 5, 'Django']

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

# Объявляем список
elements = ['Django', 'Python', 'PyQT', 'C++', 'VSCODE']
# Проверяем, что значение существует в списке
if 'Python' in elements:
    print('Python на месте')

Результат:

>>> Python на месте

Объединение списков

# Объявляем списки
elements = ['Django', 'Python', 'PyQT', 'C++', 'VSCODE']
nums = [1, 2, 3, 4]
# Соединяем списки
print(elements + nums)

Результат:

>>> ['Django', 'Python', 'PyQT', 'C++', 'VSCODE', 1, 2, 3, 4]

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

Если вы захотите скопировать список оператором =, вы скопируете не сам список, а только его ссылку.

Для копирования списков можно использовать несколько вариантов:

  • elements.copy() — встроенный метод copy (доступен с Python 3.3);
  • list(elements) — через встроенную функцию list() ;
  • copy.copy(elements) — функция copy() из пакета copy;
  • elements[:] — через создание среза (устаревший синтаксис).

С помощью list.copy()

# Объявляем списки
elements = ['Django', 'Python', 'PyQT', 'C++', 'VSCODE']
# Копируем список
copy_elements = elements.copy()
# Проверяем списки
print(elements, id(elements))
print(copy_elements, id(copy_elements))

Результат:

>>> ['Django', 'Python', 'PyQT', 'C++', 'VSCODE'] 1404420205568
>>> ['Django', 'Python', 'PyQT', 'C++', 'VSCODE'] 1404425414912

Списки имеют разные ID, это означает, что мы их правильно скопировали в отдельную ячейку памяти.

С помощью list()

# Объявляем списки
elements = ['Django', 'Python', 'PyQT', 'C++', 'VSCODE']
# Копируем список
copy_elements = list(elements)
# Проверяем списки
print(elements, id(elements))
print(copy_elements, id(copy_elements))

Результат:

>>> ['Django', 'Python', 'PyQT', 'C++', 'VSCODE'] 1431050955776
>>> ['Django', 'Python', 'PyQT', 'C++', 'VSCODE'] 1431056051136

С помощью модуля copy:

Примечание: copy.copy (a) делает поверхностную копию. Объекты внутри списка будут скопированы как ссылки на них (как в случае с оператором =). Если вы хотите рекурсивно скопировать все элементы в списке, используйте copy.deepcopy (a)

import copy
# Объявляем списки
elements = ['Django', 'Python', 'PyQT', 'C++', 'VSCODE']
# Копируем список
copy_elements = copy.deepcopy(elements)
# Проверяем списки
print(elements, id(elements))
print(copy_elements, id(copy_elements))

Результат:

>>> ['Django', 'Python', 'PyQT', 'C++', 'VSCODE'] 1833184669504
>>> ['Django', 'Python', 'PyQT', 'C++', 'VSCODE'] 1833184666624

Вложенные списки:

# Объявляем список с вложенными списками
elements = ['Программирование', ['Python', 'C++'], 'Психология', ['Отношения', 'Уверенность']]
# Получим значение по индексу 0
print(elements[0])
# Получим значение по индексу 1 с вложенным индексом 0
print(elements[1][0])
# Получим значение по индексу 3 с вложенным индексом 1
print(elements[3][1])

Результат:

>>> Программирование
>>> Python
>>> Уверенность

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

  • list.append(x) — позволяет добавлять элемент в конец списка;
  • list1.extend(list2) — предназначен для сложения списков;
  • list.insert(i, x) — служит для добавления элемента на указанную позицию(i — позиция, x — элемент);
  • list.remove(x) — удаляет элемент из списка (только первое вхождение);
  • list.clear() — предназначен для удаления всех элементов (после этой операции список становится пустым []);
  • list.copy() — служит для копирования списков.
  • list.count(x) — посчитает количество элементов x в списке;
  • list.index(x) — вернет позицию первого найденного элемента x в списке;
  • list.pop(i) — удалит элемент из позиции i ;
  • list.reverse() — меняет порядок элементов в списке на противоположный;
  • list.sort() — сортирует список.

Цикл по списку:

# Объявляем список
elements = ['Django', 'Python', 'PyQT', 'C++', 'VSCODE']
# Обходим все элементы с помощью цикла for
for elem in elements:
    print(elem)

Результат:

>>> Django
>>> Python
>>> PyQT
>>> C++
>>> VSCODE
Комментарии к статье 0
Комментариев нет
Форма добавления комментария (необходима регистрация)