В данном руководстве рассмотрим, как создать и реализовать стек в Python на примере. В Python мы можем использовать тип данных List, потому что мы можем добавлять или удалять элемент из списка. Элементы могут добавляться и удаляться из вершины стека. Знаменитый принцип, который использует стек, называется LIFO (последний пришел, первый ушел).

Пример стека Python
Список — это встроенный тип данных, который мы можем использовать для создания стека. Стек — это абстрактный тип данных в Python. Stack хранит Item в том порядке, в котором они были добавлены. Ниже приведены основные операции со стеком Python.
- Добавить элемент в стек.
- Удалить элемент из стека.
- Сколько предметов в стеке?
Возьмем пример стека.
Создайте один файл с именем app.py и напишите следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# app.py class Stack: def __init__(self): self.items = [] def push(self, item): self.items.append(item) dataStack = Stack() dataStack.push('krunal') print(dataStack.items) |
В приведенном выше коде мы определили один список с именем items внутри конструктора.
Затем мы создали метод под названием push. Метод push отвечает за добавление элемента в стек.
Следующим шагом является то, что мы создали объект из класса Stack и вызвали метод push для объекта и передали элемент в параметре.
Теперь этот элемент будет добавлен в список, и, наконец, мы распечатаем этот список. См. вывод ниже.

Теперь давайте взаимодействуем с приведенным выше кодом и посмотрим на результат. Удалите последние три строки кода.
|
1 2 3 4 5 6 7 8 |
# app.py class Stack: def __init__(self): self.items = [] def push(self, item): self.items.append(item) |
Хорошо, теперь перейдите в терминал и введите следующую команду.
|
1 |
python3 -i app.py |
Выход

Пример всплывающего окна стека Python
Мы видели пример Push в стеке. Теперь давайте посмотрим на пример Pop в стеке.
Пример Pop в стеке аналогичен методу Pop List Pop.
Если мы не укажем аргумент, какой элемент нужно удалить, то по умолчанию будет удален последний элемент в списке.
Stack pop также работает таким же образом. Вот почему нам нужно определить метод pop в классе Stack и посмотреть результат.
|
1 2 3 4 5 6 7 8 9 10 11 |
# app.py class Stack: def __init__(self): self.items = ['Imhotep', 'Anak Su na moon'] def push(self, item): self.items.append(item) def pop(self): self.items.pop() |
В приведенном выше примере мы добавили два элемента во время создания объекта средствами в конструкторе.
Теперь, когда мы вызываем метод pop() для объекта Stack, он удаляет из стека последний элемент, которым здесь является Anak Su na moon. Так что в стеке будет только Imhotep.
Разберем взаимодействие с оболочкой Python и посмотрим на результат.

Как проверить длину элементов стека
Мы можем проверить общее количество элементов стека или длину стека с помощью функции Python len(). Давайте посмотрим на вывод ниже.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# app.py class Stack: def __init__(self): self.items = ['Imhotep', 'Anak Su na moon'] def push(self, item): self.items.append(item) def pop(self): self.items.pop() def length(self): return len(self.items) |
Теперь мы определили одну функцию с именем length. Она вернет общее количество элементов внутри стека.
См. вывод ниже.

