1. ホーム
  2. python

[解決済み] Pythonでジェネレータのn番目の項目を取得する

2023-08-03 07:39:37

質問

次のような、より構文的に簡潔な書き方はありますか?

gen = (i for i in xrange(10))
index = 5
for i, v in enumerate(gen):
    if i is index:
        return v

ジェネレータに gen[index] 式があるのは自然なことだと思います。

どのように解決するのですか?

一つの方法として itertools.islice

>>> gen = (x for x in range(10))
>>> index = 5
>>> next(itertools.islice(gen, index, None))
5