在Python中获取生成器的第n个项

发布于 2021-01-29 19:25:07

有没有一种语法更简洁的方式编写以下内容?

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

生成器应该具有一个gen[index]表达式,该表达式充当列表,但在功能上与上述代码相同,这似乎是很自然的。

关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    一种方法是使用
    itertools.islice

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看