В приведенном ниже коде запустите нужную функцию для цикла aa в цикле for и не обращайте внимания на последний вызов функции. После окончания цикла у вас будет переменная aa
In [1]: a = (i for i in range(10))
In [2]: first = next(a)
In [3]: first
Out[3]: 0
In [4]: for aa in a:
...: print(aa)
...:
1
2
3
4
5
6
7
8
9
In [5]: aa
Out[5]: 9
После прочтения средней статьи на похожую тему я нашел лучший способ получить последнее значение:
In [29]: def get_last_val(A):
...: v = next(A)
...: for a in A:
...: yield False, v
...: v = a
...: yield True, v
In [30]: a = (i for i in range(10))
In [31]: a = get_last_val(a)
In [32]: for aa in a:
...: print(aa)
...:
(False, 0)
(False, 1)
(False, 2)
(False, 3)
(False, 4)
(False, 5)
(False, 6)
(False, 7)
(False, 8)
(True, 9)
Если первое возвращаемое значение равно True, это будет последнее значение в итерации.