Списки на Python - подробное руководство

Предположим, вы планируете посетить ближайший магазин, чтобы запастись предметами первой необходимости. Что бы вы сделали в первую очередь?

Уже есть ответ? Да, вы бы наверняка составили список покупок! Python также имеет встроенную структуру данных, List которая очень похожа на ваш список покупок.

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

Итак, давайте продолжим и узнаем больше о списках Python и посмотрим, насколько они аналогичны нашему списку покупок.

Давайте займемся покупками вместе!

Как списки работают в Python

Вполне естественно записывать товары в списке покупок один под другим. Чтобы Python распознал наш список, мы должны заключить все элементы списка в квадратные скобки ([ ]), разделив их запятыми.

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

shopping_list = ['apples','pens','oatmeal  cookies','notepad','brushes','paint']

Изменяемость списков в Python

Точно так же, как мы всегда можем изменить наш список покупок, переупорядочивая элементы - например, заменяя oatmeal cookiesнаши любимые candy- мы можем делать то же самое со списками Python.

По этой причине списки изменяемы . Вот как мы можем заменить oatmea l cookies с candyв нашем списке.

shopping_list[2] = 'candy'
print(shopping_list)
# Output
>> ['apples', 'pens', 'candy', 'notepad', 'brushes', 'paint']

Индексирование в списках Python

Вы заметили, что oatmeal cookies это третий элемент в списке, но он находится в индексе 2? Ну, это из-за нулевой индексации . В Python это, indexпо сути, смещение от начала списка.

Вот почему первый элемент находится по индексу 0 (без смещения), второй элемент по индексу 1и так далее. Как правило, если список содержит n элементов, последний элемент находится по индексу (n-1).
Если мы попытаемся получить доступ к элементу с недопустимым индексом, мы получим файл IndexError.

В нашем примере список покупок состоит из 6 элементов (индекс от 0 до 5). Как показано во фрагменте кода ниже, если мы попытаемся получить доступ к элементу по адресу index = 6, мы получим ошибку, поскольку в индексе нет элемента 6.

print(shopping_list[6])
# Output
>> --------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-21-a9f3b9517136> in <module>()
----> 1 shopping_list[6]

IndexError: list index out of range


С другой стороны, мы также можем использовать отрицательную индексацию . Последний элемент имеет индекс -1, то второй последний элемент имеет индекс -2

print(shopping_list[-1])
# Output
>> paint

Так же, как наш список покупок может содержать элементы любого типа, такие как фрукты, овощи, сладости и т. Д., Список Python также может содержать элементы любого типа.

При этом совершенно нормально, чтобы список содержал еще один маленький список в качестве одного из своих элементов. Этот процесс называется вложением, а такие списки - вложенными списками.

Вот пример, когда в нашем списке покупок есть два меньших списка.

my_nested_list = 

Как перебирать списки в Python

Довольно часто мы читаем наши, shopping_lis t чтобы проверить, купили ли мы все, что нам нужно. Это называется перемещением по списку.

В Python это можно сделать с помощью циклов и in оператора.

for item in shopping_list:
  print(item)
# Output 
apples
pens
candy
notepad
brushes
paint

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

Как разрезать списки в Python

Что, если бы мы были заинтересованы в рассмотрении только части нашего shopping_list? Для этого нам потребуется разрезать список и получить подмножество элементов.

Вот общий шаблон: list_name[start_index:end_index +1]. Давайте теперь попробуем это разобрать.

  • Если нам нужен фрагмент списка до end_index, укажите end_index + 1при указании начального и конечного индексов.
  • По умолчанию start_indexэто 0, а по умолчанию end_index- это индекс последнего элемента в списке.
  • Если мы не укажем start_index, срез начнется с первого элемента в списке.
  • Если мы не укажем end_index, срез будет продолжаться до последнего элемента в списке.
  • Если мы не укажем оба этих индекса, то возвращаемый срез будет полным списком.

Следующий фрагмент кода иллюстрирует это.

print(shopping_list[2:])
# Output
>> ['candy', 'notepad', 'brushes', 'paint']

print(shopping_list[:2])
# Output
>> ['apples', 'pens']

print(shopping_list[:])
# Output
>> ['apples', 'pens', 'candy', 'notepad', 'brushes', 'paint']

Как работать со списками в Python

Вы можете применять общие встроенные функции, такие как len(), min()и max() в списках, чтобы получить длину списка, минимальный элемент и максимальный элемент, соответственно.

Поскольку у нас shopping_list есть только строки, min() возвращает строку, которая появляется первой при лексикографической сортировке списка. max() возвращает строку, которая встречается последней.

Вы можете увидеть фрагмент кода для этого раздела ниже.

print(len(shopping_list))
>> 6

print(max(shopping_list))
>> pens

print(min(shopping_list))
>> apples

Мы можем создать новый список, объединив существующие списки, точно так же, как мы всегда можем объединить два небольших списка покупок для создания нового списка.

list_2 = shopping_list + ['noodles','almonds']
print(list_2)

>> ['apples', 'pens', 'candy', 'notepad', 'brushes', 'paint', 'noodles', 'almonds']

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

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

Рассмотрим наш shopping_list. Какие общие операции мы, вероятно, будем выполнять в нашем списке? Перечислим несколько:

  • Добавить элемент / несколько элементов в наш shopping_list
  • Удалить элемент / несколько элементов из нашего shopping_list
  • Заказать товары в нашем shopping_list
  • Как добавить элементы в список в Python

Мы можем добавлять элементы по одному в конец списка с помощью этого append() метода. Добавим grapesк нашему shopping_list.

shopping_list.append('grapes')
print(shopping_list)

>> ['apples', 'pens', 'candy', 'notepad', 'brushes', 'paint', 'grapes']

Что, если бы у нас был другой список (или любой другой итеративный), который мы хотели бы добавить к существующему списку? Вместо того, чтобы добавлять элементы из нового списка по одному, мы могли бы использовать этот extend() метод для добавления всего списка в первый список, как показано ниже.

shopping_list.extend(['protein bars','cheese'])
print(shopping_list)

>> ['apples', 'pens', 'candy', 'notepad', 'brushes', 'paint', 'grapes', 'protein bars', 'cheese']

Примечание. Между методами списков append() и extend() и оператором '+' для объединения двух списков существует внутренняя разница.

В то время как оператор '+' создает новый список, объединяя списки, которые мы указываем как операнды, методы append() и extend() модифицируют список, в котором они вызываются (вызываются), и не возвращают новый список.

Как удалить элементы из списка в Python

Мы можем удалить элементы из списка, как отдельный элемент, так и группу, используя следующие методы.

Метод pop() возвращает последний элемент в списке , а также удаляет его, как показано ниже. cheeseбыл последним элементом в списке, и теперь он удален.

last_element = shopping_list.pop()
print(shopping_list)
print(last_element)
# Output
>> ['apples', 'pens', 'candy', 'notepad', 'brushes', 'paint', 'grapes', 'protein bars']
>> cheese

Если мы хотим удалить элемент из определенного индекса, мы можем указать в index качестве аргумента для pop().

not_needed = shopping_list.pop(2)
print(not_needed)
# Output
>> candy

Если нам не нужен доступ к значению удаленного элемента списка, мы можем del вместо этого использовать функцию.

Мы можем удалить элемент по определенному индексу, указав этот индекс, или мы можем удалить все элементы в срезе списка, разрезая список, как объяснено в предыдущем разделе.

del shopping_list[1]
print(shopping_list)
# Output
>> ['apples', 'notepad', 'brushes', 'paint', 'grapes', 'protein bars']

Предположим, мы знаем товар, который нам больше не нужно покупать, но не знаем, по какому индексу он находится. В этих случаях мы можем использовать remove()метод для удаления элемента по имени.

В нашем примере элемент с индексом 1 в нашей последней копии - pens. Если бы мы не знали индекс pens, мы могли бы написать shopping_list.remove(' pens ') для выполнения той же задачи, что и в приведенном выше фрагменте кода.

Чтобы удалить все элементы из списка, мы можем использовать list_name.clear().

Примечание: если мы попытаемся удалить элемент, которого нет в списке, мы получим ValueError.

Как отсортировать список в Python

Мы можем выбрать сортировку shopping_list, вызвав sort() метод. Поскольку в нашем списке только строки, он sort() будет отсортирован в алфавитном порядке. Если у нас есть список чисел, по умолчанию элементы будут отсортированы в порядке возрастания.

Если вы хотите отсортировать по убыванию, установите необязательный аргумент reverse = True.

Примечание. Вызов sort() метода изменяет существующий список и не создает новый. Если вы хотите получить новый отсортированный список, сохранив существующий список как есть, используйте этот sorted() метод.

shopping_list.sort()
print(shopping_list)
# Output
>> ['apples', 'brushes', 'grapes', 'notepad', 'paint', 'protein bars']

Еще один полезный метод, count который вы можете использовать, чтобы проверить, сколько раз конкретный элемент встречается в нашем списке. list_name.count(elt) возвращает количество появлений elt в списке list_name.

Читайте также

Комментарии ()

    Написать комментарий