Функция pop в питоне

Метод List pop() в Python

Сегодня мы рассмотрим метод List pop() в Python. Обычно у нас есть различные встроенные методы для удаления любого элемента из списка в Python. У нас есть del, remove(), а также метод pop() для выполнения этой задачи. Но у каждого из них есть свои отличия. Давайте узнаем, как использовать метод pop() и каковы преимущества использования этого метода.

Работа метода List pop() в Python

По сути, метод pop() в Python выводит последний элемент в списке, если не передан параметр. При передаче с некоторым индексом метод выталкивает элемент, соответствующий индексу.

#pop() method syntax in Python pop(index)
  • Когда передается индекс, метод удаляет элемент по индексу, а также возвращает то же самое.
  • Когда ничего не передается, метод удаляет последний элемент и возвращает его там, где функция была ранее вызвана.

Использование списка pop()

Взгляните на пример кода ниже, он иллюстрирует использование встроенного метода pop() в python.

  • Сначала мы инициализируем список list1, как [0,1,2,3,4,5,6,7,8,9,10]. В этом списке мы выполняем соответствующую операцию pop, передавая отдельные индексы.
  • pop() – как было сказано ранее, по умолчанию pop() возвращает и удаляет последний элемент из списка. В нашем случае последний элемент был 10, который появляется последовательно.
  • pop(0) – выталкивает элемент в list1 в 0-й позиции, которая в нашем случае равна 0.
  • Точно так же все операции pop(1), pop(2), pop(3) и pop(4) возвращают элементы по их соответствующим индексам. Это 2, 4, 6 и 8, поскольку мы продолжаем выталкивать элементы из списка.
Traceback (most recent call last): File "C:/Users/sneha/Desktop/test.py", line 4, in print(list1.pop(10)) IndexError: pop index out of range Process finished with exit code 1

В этом примере ясно, что индекс, предоставленный методу pop(), 10 больше, чем длина списка (4). Следовательно, мы получаем IndexError.

2. Ошибка при пустом списке

Как и в предыдущем разделе, когда мы пытаемся выполнить метод List pop() для пустого списка, мы сталкиваемся с той же самой IndexError. Например:

l1=[] #for empty lists print(l1.pop())
Traceback (most recent call last): File "C:/Users/sneha/Desktop/test.py", line 4, in print(list1.pop()) IndexError: pop from empty list Process finished with exit code 1

Итак, мы можем сделать вывод, что при выполнении метода list pop() для пустого списка выдается IndexError.

Читайте также:  Using command line with java

Следовательно, мы должны проверить, прежде чем применять метод pop(), что список, с которым мы имеем дело, не пуст. Простая проверка длины может решить нашу проблему.

l1=[] #for empty lists check length before poping elements! if len(l1)>0: print(l1.pop()) else: print("Empty list! cannot pop()")

Оператор if-else в Python проверяет, является ли список пустым или нет, и извлекает элемент из списка только тогда, когда len (l1)> 0, т.е. когда список l1 не пуст.

List pop() в стеке Python

Как мы видели в нашем руководстве по Python Stack Tutorial, pop() также является операцией стека, используемой для удаления последней переданной задачи или элемента. Давайте посмотрим, как мы можем реализовать метод list pop() в стеке с помощью списков.

stack=[] #declare a stack print("Pushing tasks into stack. ") for i in range(5): stack.append(i) print("stack=",stack) print("Poping tasks from stack:") #performing repetitive pop() on stack while len(stack)>0: print("pop()=",stack.pop(),"; Currently in Stack:",stack)

Pop в стеке

  • После объявления списка стека мы нажимаем 5 элементов, непрерывно отправляя задачи (элементы) с помощью метода append().
  • Как только наша инициализация стека завершена, мы повторяем элементы pop(), пока стек не станет пустым.
  • Обратите внимание, что при извлечении элементов из стека мы использовали условие len (stack)> 0 с помощью цикла while. Это гарантирует, что операция pop выполняется только тогда, когда стек не пуст.

Источник

Списки python — функции и методы Python list()

Список в python

В python списки хранят упорядоченный набор элементов, которые могут быть разных типов. В примере, указанном выше элементы имеют один и тот же тип int . Не обязательно все элементы должны быть одного типа.

 
# Создание списка с разными типам данных heterogenousElements = [3, True, 'Витя', 2.0]

Этот список содержит int , bool , string и float .

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

Каждый элемент имеет присвоенный ему индекс. Важно отметить, в python индекс первого элемента в списке — 0.

Элементы списка

 
z = [3, 7, 4, 2] # создаем список # обращение к первому элементу списка с индексом 0 print(z[0]) # элемент с индексом 0 -> 3

Также поддерживается отрицательная индексация. Отрицательная индексация начинается с конца. Иногда её удобнее использовать для получения последнего элемента в списке, потому что не нужно знать длину списка, чтобы получить доступ к последнему элементу.

Отрицательная индексация списка

 
# выведите последний элемент списка >>> print(z[-1]) 2

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

Срезы(slice) списка

Срезы хороши для получения подмножества значений с вашего списка. На примере кода, приведенного ниже, он вернет список с элементами из индекса 0 и не включая индекс 2.

Срезы списка

 
# Создайте список z = [3, 7, 4, 2] # Вывод элементов с индексом от 0 до 2 (не включая 2) print(z[0:2]) # вывод: [3, 7]

Срезы списка 2

 
# Все, кроме индекса 3 >>> print(z[:3]) [3, 7, 4]

Срезы списка 3

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

 
# начиная с индекса 1 до конца списка >>> print(z[1:]) [7, 4, 2]

Изменение элементов в списке

Изменение списка

Списки в Python изменяемы. Это означает, что после создания списка можно обновить его отдельные элементы.

 
z = [3, 7, 4, 2] # Создание списка # Изменяем элемент с индексом 1 на строку 'fish' z[1] = 'fish' print(z)

Методы и функции списков python

У списков Python есть разные методы, которые помогают в программировании. В этом разделе рассматриваются все методы списков.

Метод Index

Метод index возвращает положение первого индекса, со значением х . В указанном ниже коде, он возвращает назад 0.

 
# Создайте список >>> z = [4, 1, 5, 4, 10, 4] >>> print(z.index(4)) 0

Индексы списка

Вы также можете указать, откуда начинаете поиск.

list index

Метод Count

Метод count работает так, как звучит. Он считает количество раз, когда значение появляется в списке.

 
>>> random_list = [4, 1, 5, 4, 10, 4] >>> print(random_list.count(4)) 3

Метод Sort

метод sort

Метод sort сортирует и меняет исходный список.

Обратная сортировка списка

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

 
# Сортировка и изменение исходного списка от наивысшего к наименьшему z.sort(reverse = True) print(z)

Следует отметить, что вы также можете отсортировать список строк от А до Я (или A-Z) и наоборот.

 
 
# Сортировка списка строками names = ["Стив", "Рейчел", "Майкл", "Адам", "Джессика", "Лестер"] names.sort() print(names)
['Адам', 'Джессика', 'Лестер', 'Майкл', 'Рейчел', 'Стив']

Метод Append

list append

Метод append добавляет элемент в конец списка. Это происходит на месте.

 
z = [7, 4, 3, 2] z.append(3) print(z)

Метод Remove

метод remove

 
z = [7, 4, 3, 2, 3] z.remove(2) print(z)

Код удаляет первое вхождение значения 2 из списка z.

Метод Pop

метод pop

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

 
z = [7, 4, 3, 3] print(z.pop(1)) print(z)

Метод Extend

Метод Extend

Метод extend расширяет список, добавляя элементы. Преимущество над append в том, что вы можете добавлять списки.
Добавим [4, 5] в конец z :

 
z = [7, 3, 3] z.extend([4,5]) print(z)

То же самое можно было бы сделать, используя + .

Метод Insert

метод insert

Метод insert вставляет элемент перед указанным индексом.

 
z = [7, 3, 3, 4, 5] z.insert(4, [1, 2]) print(z)

Простые операции над списками

Метод Описаниее
x in s True если элемент x находится в списке s
x not in s True если элемент x не находится в списке s
s1 + s2 Объединение списков s1 и s2
s * n , n * s Копирует список s n раз
len(s) Длина списка s , т.e. количество элементов в s
min(s) Наименьший элемент списка s
max(s) Наибольший элемент списка s
sum(s) Сумма чисел списка s
for i in list() Перебирает элементы слева направо в цикле for

Примеры использование функций со списками:

 
>>> list1 = [2, 3, 4, 1, 32] >>> 2 in list1 # 2 в list1? True >>> 33 not in list1 # 33 не в list1? True >>> len(list1) # количество элементов списка 5 >>> max(list1) # самый большой элемент списка 32 >>> min(list1) # наименьший элемент списка 1 >>> sum(list1) # сумма чисел в списке 42 # генератор списков python (list comprehension) >>> x = [i for i in range(10)] >>> print(x) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> print(list1.reverse()) # разворачивает список [32, 1, 4, 3, 2]

Операторы + и * для списков

 
list1 = [11, 33] list2 = [1, 9] list3 = list1 + list2 print(list3)

* копирует элементы в списке.

 
list4 = [1, 2, 3, 4] list5 = list4 * 3 print(list5)

Оператор in и not in

Оператор in проверяет находится ли элемент в списке. При успешном результате он возвращает True , в случае неудачи, возвращает False .

 
>>> list1 = [11, 22, 44, 16, 77, 98] >>> 22 in list1 True

Аналогично not in возвращает противоположный от оператора in результат.

Итерация по списку с использованием цикла for

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

 
list1 = [1,2,3,4,5] for i in list1: print(i, end=" ")

Преобразование списка в строку

Как преобразовать список в строку?
Для преобразования списка в строку используйте метод join(). В Python это выглядит так:
",".join(["a", "b", "c"]) -> "a,b,c" .
Разделитель пишут в кавычках перед join, в список должен состоять из строк.

Вот несколько полезных советов для преобразования списка в строку (или любого другого итерабельного, такого как tuple ).

Во-первых, если это список строк, вы можете просто использовать join() следующим образом.

 
mylist = ['spam', 'ham', 'eggs'] print(', '.join(mylist))

Используя тот же метод, вы можете также сделать следующее:

 
>>> print('\n'.join(mylist)) spam ham eggs

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

 
list_of_ints = [80, 443, 8080, 8081] print(str(list_of_ints).strip('[]'))

Или же этот, если ваши объекты содержат квадратные скобки:

 
>>> print(str(list_of_ints)[1:-1]) 80, 443, 8080, 8081

В конце концов, вы можете использовать map() чтобы преобразовать каждый элемент в список строки и затем присоединиться к ним:

 
>>> print(', '.join(map(str, list_of_ints))) 80, 443, 8080, 8081 >>> print('\n'.join(map(str, list_of_ints))) 80 443 8080 8081

Тест на знание списков в Python

a = [ 1, 342, 223, 'Африка', 'Очки']
print(a[-3])
sample = [10, 20, 30]
sample.append(60)
sample.insert(3, 40)
print(sample)
lake = ["Python", 51, False, "22"]
lake.reverse()
lake.reverse()
print(lake[-2])
x = [10, [3.141, 20, [30, 'baz', 2.718]], 'foo']

Обучение с трудоустройством

Я создал этот блог в 2018 году, чтобы распространять полезные учебные материалы, документации и уроки на русском. На сайте опубликовано множество статей по основам python и библиотекам, уроков для начинающих и примеров написания программ.

Python Q CEO Pythonru admin@pythonru.com https://secure.gravatar.com/avatar/b16f253879f7349f64830c64d1da4415?s=96&d=mm&r=g CEO Pythonru Python Александр Редактор https://t.me/cashncarryhttps://pythonru.com/https://yandex.ru/q/profile/cashnc/ PythonRu.com admin@pythonru.com Alex Zabrodin 2018-10-26 Online Python, Programming, HTML, CSS, JavaScript

Источник

Оцените статью