在 Python 2.6 中从迭代器中获取最后一项的最佳方法是什么?例如,说
my_iter = iter(range(5))
从 my_iter
获取 4
的最短代码/最简洁的方法是什么?
我可以这样做,但似乎效率不高:
[x for x in my_iter][-1]
最佳答案
如果您使用的是 Python 3.x:
*_, last = iterator # for a better understanding check PEP 448
print(last)
如果您使用的是 python 2.7:
last = next(iterator)
for last in iterator:
continue
print last
旁注:
通常,上述解决方案是您在常规情况下所需要的,但如果您要处理大量数据,使用大小为 1 的 deque
会更有效。 ( source )
from collections import deque
#aa is an interator
aa = iter('apple')
dd = deque(aa, maxlen=1)
last_element = dd.pop()
关于python - 从 Python 迭代器获取最后一项的最简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2138873/