Получить последний элемент итератора в Python

Чтобы получить последний элемент итератора в Python, вы можете использовать один из следующих методов:

  1. Использование цикла: перебор итератора до тех пор, пока не будет достигнут последний элемент. Поскольку итератор не поддерживает индексацию, это универсальный метод, который работает для любого типа итератора.
def get_last_element(iterator):
    last_element = None
    for element in iterator:
        last_element = element
    return last_element
  1. Преобразование итератора в список. Вы можете преобразовать итератор в список с помощью функции list(), а затем получить доступ к последнему элементу, используя отрицательную индексацию.
def get_last_element(iterator):
    return list(iterator)[-1]
  1. Использование класса collections.deque. Класс collections.dequeиз стандартной библиотеки Python предоставляет метод pop(), который может использоваться для эффективного получения последнего элемента итератора.
from collections import deque
def get_last_element(iterator):
    return deque(iterator, maxlen=1).pop()
  1. Использование модуля itertools. Модуль itertoolsпредоставляет функцию под названием islice(), которую можно использовать для разрезания итератора. Передав Noneв качестве начала и -1в качестве аргумента остановки, вы можете получить последний элемент.
import itertools
def get_last_element(iterator):
    return next(itertools.islice(iterator, None, -1))