有没有一种语法更简洁的方式编写以下内容?
gen = (i for i in xrange(10)) index = 5 for i, v in enumerate(gen): if i is index: return v
生成器应该具有一个gen[index]表达式,该表达式充当列表,但在功能上与上述代码相同,这似乎是很自然的。
gen[index]
一种方法是使用 itertools.islice
itertools.islice
>>> gen = (x for x in range(10)) >>> index = 5 >>> next(itertools.islice(gen, index, None)) 5