/
Вопросы и ответы
/
Python
/

Как работает функция pop в Python?

Как работает функция pop в Python?

4 года назад

Andrey Moshkov

Ответы

1

Метод pop в Python удаляет и возвращает элемент из списка по указанному индексу. Если индекс не указан, удаляется и возвращается последний элемент списка.

Пример:

1
2
3
4
5
6
7
8
9
10
11
12
numbers = [1, 2, 3, 4, 5]
popped_number = numbers.pop(2)
print(popped_number)
# Вывод: 3
print(numbers)
# Вывод: [1, 2, 4, 5]

last_number = numbers.pop()
print(last_number)
# Вывод: 5
print(numbers)
# Вывод: [1, 2, 4]

2 года назад

Elena Gromova

1

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

1
2
3
4
5
6
7
fruits = ['apple', 'banana', 'cherry']

x = fruits.pop()

print(fruits) # =>  ['apple', 'banana']

print(x) # => cherry

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

1
2
3
4
5
6
7
fruits = ['apple', 'banana', 'cherry']

x = fruits.pop(1)

print(fruits) # =>  ['apple', 'cherry']

print(x) # => banana

4 года назад

Владимир Устянивский

0

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

Синтаксис:

  • pop([i]), где i индекс элемента, который требуется удалить из списка. Если индекс не указан, удаляется последний элемент.

Пример:

1
2
3
4
my_list = [1, 3, "eggs", "spam"]
print(my_list.pop(1)) # Он удалил 3 и оставил только 1, "eggs", "spam" в списке my_list и вывел 3, что он удалил
print(my_list.pop()) # Он удалил spam и оставил только 1, "eggs" в списке my_list и вывел spam, что он удалил.
print(my_list) # и видим, что выводится [1, 'eggs'], тк это не удалилась

2 года назад

Алёна Шереметьева

0

list.pop() удаляет элемент из списка и возвращает его. Без аргумента удаляет последний элемент, с индексом — элемент на этой позиции:

1
2
3
4
5
6
7
8
9
fruits = ["яблоко", "банан", "вишня"]

last = fruits.pop()
print(last)     # => вишня
print(fruits)   # => ['яблоко', 'банан']

first = fruits.pop(0)
print(first)    # => яблоко
print(fruits)   # => ['банан']

pop() меняет сам список. Новый список не создаётся.

pop, remove и del

СпособЧто удаляетВозвращает
lst.pop()последний элементудалённый элемент
lst.pop(i)элемент по индексуудалённый элемент
lst.remove(x)первый элемент со значением xNone
del lst[i]элемент по индексуничего
lst.clear()все элементыNone

pop() выбирают, когда удалённое значение нужно дальше в коде.

Стек на списке

append() добавляет элемент в конец, pop() забирает с конца. Получается стек: последний пришёл — первый ушёл.

1
2
3
4
5
6
stack = []
stack.append(1)
stack.append(2)
stack.append(3)
print(stack.pop())  # => 3
print(stack.pop())  # => 2

pop(0) на длинном списке работает медленно: Python сдвигает все остальные элементы. Для очереди используют collections.deque и его метод popleft().

pop у словаря и множества

1
2
3
4
5
6
user = {"name": "Анна", "age": 25}
age = user.pop("age")        # => 25, ключ удалён
city = user.pop("city", "—") # => '—', ключа нет, вернётся значение по умолчанию

items = {1, 2, 3}
x = items.pop()              # удалит и вернёт произвольный элемент

Частые ошибки

1
2
[].pop()
# IndexError: pop from empty list

Проверьте список перед вызовом: if lst: lst.pop().

1
2
{"a": 1}.pop("b")
# KeyError: 'b'

Передайте значение по умолчанию вторым аргументом: d.pop("b", None).

Списки, словари и их методы разбирают в бесплатном курсе «Основы Python».

8 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845