如何从生成器或列表中获取前N项?
如何从生成器或列表中获取前N项?
这个问题已经在这里有了答案:
使用linq,我会
var top5 = array.Take(5);
如何在Python中实现这个功能?
admin 更改状态以发布 2023年5月22日
切片列表
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(generator, start, stop, step)
,itertools.islice()
将通过一个新的切片生成器包装对象。 -
请记住,切片生成器会部分耗尽它。如果您想要保持整个生成器不变,可以先将其转换为元组或列表,例如:
result = tuple(generator)