如何从生成器或列表中获取前 N 个项目? [英] How to take the first N items from a generator or list?
本文介绍了如何从生成器或列表中获取前 N 个项目?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用 linq 我会
var top5 = array.Take(5);
如何用 Python 做到这一点?
How to do this with Python?
推荐答案
切片列表
top5 = array[:5]
- 要对列表进行切片,有一个简单的语法:
array[start:stop:step]
- 您可以省略任何参数.这些都是有效的:
array[start:]
、array[:stop]
、array[::step]
import itertools
top5 = itertools.islice(my_list, 5) # grab the first five elements
您不能直接在 Python 中对生成器进行切片.
itertools.islice()
将包装一个使用语法itertools.islice(generator, start, stop, step)
请记住,对生成器进行切片会使其部分耗尽.如果你想保持整个生成器完整,可以先把它变成一个元组或列表,比如:
result = tuple(generator)
Remember, slicing a generator will exhaust it partially. If you want to keep the entire generator intact, perhaps turn it into a tuple or list first, like:
result = tuple(generator)
这篇关于如何从生成器或列表中获取前 N 个项目?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文