如何从Python的生成器或列表中获取前N个项目? [英] How to take the first N items from a generator or list in Python?
本文介绍了如何从Python的生成器或列表中获取前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]
- To slice a list, there's a simple syntax:
array[start:stop:step]
- You can omit any parameter. These are all valid:
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)
这篇关于如何从Python的生成器或列表中获取前N个项目?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文