Python 2.6でイテレータから最後の項目を取得する最良の方法は何ですか?たとえば、
my_iter = iter(range(5))
4
から取得する最も短いコード/最もクリーンな方法は何ですかmy_iter
?
これを行うこともできますが、あまり効率的ではないようです。
[x for x in my_iter][-1]
ベストアンサー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
サイドノート:
通常、上記のソリューションは通常のケースでは必要なものですが、大量のデータを扱う場合は、deque
サイズ 1 の を使用する方が効率的です。(ソース)
from collections import deque
#aa is an interator
aa = iter('apple')
dd = deque(aa, maxlen=1)
last_element = dd.pop()