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.
Тип данных списка включает ряд полезных методов.
Если у вас есть вопросы или отзывы, не стесняйтесь оставлять комментарии