Pythonイテレータから最後の項目を取得する最もクリーンな方法 質問する

Pythonイテレータから最後の項目を取得する最もクリーンな方法 質問する

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()

おすすめ記事