Списки Python

Список 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() и других встроенных функций, таких как 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 :

 Traceback (most recent call last): File "", line 1, in  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.
  • Второй аргумент указывает индекс, до которого следует завершить извлечение; результат не включает элемент «stop». Отрицательный индекс указывает смещение от конца списка. Если этот аргумент опущен или превышает длину списка, срез выполняется до конца списка.
  • Третий аргумент необязателен и задаёт шаг среза. Если аргумент «шаг» не указан, он по умолчанию равен 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 :

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

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

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

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

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

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

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

 L.append(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 "", line 1, in  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() для циклического перебора списка более привычным для Python способом:

 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')

Вывод будет либо yes , либо no :

 no

Методы списка Python

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

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

Заключение

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

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

питон

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *