Списки Python

Python включает ряд последовательных типов данных, которые позволяют хранить коллекции данных организованным и эффективным способом. Основные типы последовательностей — это списки, кортежи и объекты диапазона.

В этой статье рассматриваются списки Python. Мы покажем вам, как создать список, разрезать и отсортировать список, добавить или удалить элементы из списка и т. Д.

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

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

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

L = ['orange', 'white', 'green']

Квадратные скобки без элементов между ними обозначают пустой список:

L = []

Хотя списки Python обычно однородны, у вас могут быть элементы со смешанными типами данных:

L = [1, 'white', 6.5]

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

L = [1, 2, ['red', 'blue']]

Несколько элементов могут иметь одно и то же значение:

L = [1, 2, 3, 2, 2, 1]

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

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

На элемент списка можно ссылаться по его индексу. Индексы являются целыми числами и начинаются от 0 до n-1 где n — количество элементов:

L = ["a", "b", "c", "d"]
      0    1    2    3

В Python индексы заключаются в квадратные скобки:

L[index]

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

colors = ['orange', 'white', 'green']colors[1]

'white'

Если вы ссылаетесь на несуществующий индекс, IndexError исключение IndexError :

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

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

L = [1, 2, ["red", "blue"]]L[2][1]

'blue'

Python также позволяет вам получать доступ к элементам списка, используя отрицательные индексы. Последний элемент обозначается как -1 , второй последний элемент — как -2 и так далее:

L = ["a", "b", "c", "d"]
     -4   -3   -2   -1

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

colors = ['orange', 'white', 'green']colors[-2]

'white'

Нарезка списка

В Python вы можете разрезать список, используя следующую форму:

L[start:stop:step]

  • Первый аргумент указывает индекс, с которого начинается извлечение. Когда используется отрицательный индекс, он указывает смещение от конца списка. Если этот аргумент опущен, нарезка начинается с индекса 0.
  • Второй аргумент указывает индекс, до которого следует завершить извлечение; результат не включает элемент «стоп». Когда используется отрицательный индекс, он указывает смещение от конца списка. Если этот аргумент опущен или превышает длину списка, нарезка переходит в конец списка.
  • Третий аргумент является необязательным и указывает шаг нарезки. Когда аргумент «шаг» не используется, по умолчанию он равен 1. Когда используется отрицательное значение, срез принимает элементы в обратном порядке.

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

Все следующее является допустимым синтаксисом Python:

L[:] # copy whole list
L[start:] # slice the list starting from the element with index "start" to the end of the list.
L[:stop] # slice the list starting from the begging up to but not including the element with index "stop".
L[start:stop] #  slice the list starting from the element with index "start" up to but not including the element with index "stop".
stop"
L[::step] #  slice the list with a stride of "step"

Ниже приведен базовый пример того, как разрезать список, начиная с элемента с индексом 1 и заканчивая элементом с индексом 4, но не включая его:

fruits = ['Apple', 'Peach', 'Lemon', 'Strawberry', 'Grape']fruits[1:4]

['Peach', 'Lemon', 'Strawberry']

Обновление значения элемента

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

L[index] = value

Вот пример, показывающий, как обновить значение последнего элемента списка:

colors = ['orange', 'white', 'green']colors[-1] = "blue"print(colors)

['orange', 'white', 'blue']

Если элемент с данным индексом существует, значение обновляется. В противном случае IndexError исключение IndexError :

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range

Вы также можете обновить часть списка новыми значениями:

colors = ['orange', 'white', 'green']colors[1:3] = ['red']print(colors)

['orange', 'red']

Замещающий блок может иметь меньшее, большее или такое же количество элементов, как и список. Это позволяет расширять или сжимать список.

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

Тип данных списка имеет два метода, которые позволяют добавлять элементы в список : append() и insert() .

Метод append() добавляет элемент в конец списка. Синтаксис метода append() следующий:

L.append(element)

«Element» — это элемент, который нужно добавить в список. Это может быть любой тип данных, включая список. Вот пример:

colors = ['orange', 'white', 'green']colors.append('red')print(colors)

['orange', 'white', 'green', 'red']

Метод insert() рекламирует элемент в определенной позиции в списке и имеет следующий синтаксис:

L.insert(index, element)

«Index» — это позиция, в которую вы хотите вставить элемент, а «element» — это элемент, который нужно добавить в список. В следующем примере показано, как добавить элемент в список на первой позиции:

colors = ['orange', 'white', 'green']colors.insert(0, 'red')print(colors)

['red', 'orange', 'white', 'green']

Метод extend() позволяет расширить список несколькими элементами. Он принимает единственный аргумент и имеет следующий синтаксис:

L.extend(list)

Элементы «списка» добавляются в конец «L». Вот пример:

colors = ['orange', 'white', 'green']colors.extend(['blue', 'black'])print(colors)

['orange', 'white', 'green', 'blue', 'black']

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

Метод remove() принимает один аргумент и удаляет из списка первый элемент со значением, соответствующим аргументу:

L.remove(element)

colors = ['orange', 'white', 'orange', 'green']colors.remove('orange')print(colors)

['white', 'orange', 'green']

Если элемент с данным значением не существует, возникает исключение ValueError :

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

Метод pop() принимает один аргумент и удаляет элемент с индексом, соответствующим аргументу, из списка:

L.pop(element)

Аргумент является необязательным. По умолчанию используется значение «-1», которое является последним элементом списка. Возвращаемое значение метода — удаленный элемент. Вот пример:

colors = ['orange', 'white', 'green']colors.pop(1)print(colors)

'white'
['orange', 'green']

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

colors = ['orange', 'white', 'orange', 'green']del colors[0:2]print(colors)

['orange', 'green']

Чтобы удалить все элементы, используйте метод clear() , который очищает список и не принимает никаких аргументов:

colors = ['orange', 'white', 'green']colors.clear()print(colors)

[]

Найдите длину списка

Встроенная функция len() возвращает общее количество элементов объекта.

Чтобы узнать длину списка, передайте его в качестве аргумента функции len() :

len(L)

Вот пример:

colors = ['orange', 'white', 'green']num = len(colors)print(num)

3

Итерация по списку

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

colors = ['orange', 'white', 'green']for color in colors:    print(color)

orange
white
green

Если вам нужны индексы, в вашем распоряжении несколько методов. Наиболее распространенные способы — комбинировать функции range() и len() или использовать встроенную функцию enumerate() .

В приведенном ниже примере показано, как получить индекс и значение каждого элемента в списке:

colors = ['orange', 'white', 'green']for i in range(len(colors)):  print("Index {} : Value {}".format(i, colors[i]))

Index 0 : Value orange
Index 1 : Value white
Index 2 : Value green

Вместо использования шаблона range(len(...)) вы можете использовать функцию enumerate() для enumerate() списка более питоническим способом:

colors = ['orange', 'white', 'green']for index, value in enumerate(colors):   print("Index {} : Value {}".format(index, value))

Index 0 : Value orange
Index 1 : Value white
Index 2 : Value green

Проверить, существует ли элемент

Чтобы проверить, существует ли элемент в списке, вы можете использовать операторы in и not in :

colors = ['orange', 'white', 'green']print('orange' in colors)

Результатом будет True или False :

True

Вот еще один пример с использованием оператора if :

colors = ['orange', 'white', 'green']if 'blue' not in colors:    print('no')else:    print('yes')

Результатом будет True или False :

no

Списки Python

Объекты списка принимают следующие методы:

  • append(x) — добавляет элемент в конец списка.
  • clear() — удаляет все элементы из списка.
  • copy() — возвращает частичную копию списка.
  • count(x) — возвращает количество раз, когда «x» появляется в списке.
  • extend(iterable) — добавляет «итерабельность» в конец списка.
  • index(x) — возвращает позицию первого вхождения элемента со значением ‘x’.
  • insert(i, x) — добавляет элемент в заданную позицию.
  • pop(i) — удаляет элемент из заданной позиции.
  • remove() — удаляет элемент с заданным значением.
  • reverse()переворачивает элементы списка .
  • sort()sort() элементы списка.

Выводы

В этой статье мы обсудили, как создавать списки и работать со списками в Python.

Тип данных списка включает ряд полезных методов.

Если у вас есть вопросы или отзывы, не стесняйтесь оставлять комментарии



2020-10-13T18:22:42
Python