Статья Объект List [Список] в Pyton

Кирилл

Команда форума
Администратор
Сообщения
13,812
Реакции
6,164
Баллы
913
Объект List [Список] - это изменяемый объект, представляющий из себя коллекцию произвольных объектов.

Что бы было легче понять, давайте представим список в виде подобной схемы:

Пример списка: ['Список'].

Введите в интерпретаторе:

Python:
y = list('Список')
print(y)
Вывод будет следующим :
['С', 'п', 'и', 'с', 'о', 'к']

Что произошло?

1) Мы назначили переменной y значение list('Список')

2) Функция list создает объект 'Список'


3) Внутри объекта ['Список'] создаются объекты, словно в контейнере.

4) Каждый объект внутри списка ссылается на собственный объект в памяти, то есть, по сути является его переменной.

list.png




Каждый вложенный внутри списка объект является изменяемым, то есть его можно изменить.
Так же мы имеем возможность обращаться к элементам списка, каждый элемент имеет свой цифровой индекс.
Индексация начинается с нуля, то есть первый элемент списка всегда имеет индекс 0.

Итак, вернемся к пункту №2 - функции list, с помощью которой был создан список.

Список можно создать и другими способами. Перечислим их:

1) Функция list( )
Ввод:
y = list('Список')
print(y)
Вывод:
['С', 'п', 'и', 'с', 'о', 'к']
2) При помощи литерала с квадратными скобками - [ ]

Ввод:
y = [Список]
print(y)
Вывод:
['Список']
Обратите внимание - функция list разбивает вводимые данные на символы, присваивая каждому из них свой объект внутри списка.
То есть объект с индексом 0 ссылается на строковой объект "С" в памяти компьютера, и так с каждым последующим символом.
При создании списка через литерал с квадратными скобками мы ввели те же данные, но теперь вся строка является объектом, на который ссылается объект списка с индексом 0

3) С помощью генератора списков

Ввод:
y = [list('Список')[i] for i in range(len('Список'))]
print(y)
Вывод:
['С', 'п', 'и', 'с', 'о', 'к']
Если синтаксис генератора вам кажется сложным и непонятен - то сначала необходимо изучить тему генераторы в python

Как можно обратиться к нужному объекту списка?
По индексу.

Номер индекса указывается в квадратных скобках после списка.
Ввод:
y = list('Список')
print(y[1])
Ввод:
print(list('Список')[1])
В обоих случаях вывод будет одинаков - под индексом 1 у нас в списке значится символ "п"

Вывод:
п

Ниже перечислены основные методы списков:

  • list.append(x) Добавляет элемент в конец списка
Ввод:
#list.append(x)
y = ['Список']
y.append(' №2')
print(y)
Вывод:
['Список', ' №2']
  • list.extend(L) Расширяет список list, добавляя в конец все элементы списка L
Ввод:
#list.extend(L)
#обратите внимание - добавляемый список
# уже обработан функцией list()
y = ['Список']
y.extend('Расстрельный')
print(y)
Вывод:
['Список', 'Р', 'а', 'с', 'с', 'т', 'р', 'е', 'л', 'ь', 'н', 'ы', 'й']
  • list.insert(i, x) Вставляет на i-ый элемент значение x
Ввод:
#list.insert(i, x)
# В данном примере индекс указан под номером -1
# Отрицательное число - значит обратный отсчет, первый с конца
# последующее уменьшение числа (-2,-3) будет означать соответствующий номер
# символа с конца. Номерация с -1. (0 - всегда превый символ)
y = ['Список']
y.insert(-1,'Расстрельный')
print(y)
Вывод:
['Расстрельный', 'Список']
  • list.remove(x) Удаляет первый элемент в списке, имеющий значение x
Ввод:
#list.remove(x)
y = ['Расстрельный','Список','Расстрельный']
y.remove('Расстрельный')
print(y)
Вывод:
['Список', 'Расстрельный']
  • list.pop() Удаляет i-ый элемент и возвращает его. Если индекс не указан, удаляется последний элемент
Ввод:
#list.pop()
y = ['Список','Расстрельный']
print(y.pop())
Вывод:
Расстрельный
Ввод:
#list.pop(0)
y = ['Список','Расстрельный']
y.pop(0)
print(y)
Вывод:
['Расстрельный']
  • list.index(x, [start [, end]]) Возвращает положение первого элемента от start до end со значением x
Ввод:
#list.index(x, [start [, end]])
y = list('Расстрельный')
print(y)
# Возвращаем индекс первого "c"
print(y.index('с'))
# Возвращаем индекс первого символа "с"
# в диапазоне с 3 по 5 элемент списка
print(y.index('с',3,5))
# Возвращаем индекс символа "с" в диапазоне
# с 4 по 5 элемент списка и получаем ошибку, так как символ не найден
print(y.index('с',4,5))
Вывод:
['Р', 'а', 'с', 'с', 'т', 'р', 'е', 'л', 'ь', 'н', 'ы', 'й']
2
3
Traceback (most recent call last):
  File "test.py.py", line 11, in <module>
    print(y.index('с',4,5))
ValueError: 'с' is not in list
  • list.count(x) Возвращает количество элементов со значением x
Ввод:
#list.count(x)
y = list('Расстрельный')
print(y.count('с'))
if y.count('с'):
    print('Yes')
Вывод:
2
Yes
  • list.sort([key = функция]) Сортирует список на основе функции list.reverse() Разворачивает список
  • list.copy() Поверхностная копия списка (начиная с python 3.3)
  • list.clear() Очищает список (начиная с python 3.3)
 
Последнее редактирование:
Сверху Снизу