如何从生成器或列表中获取前N项?

13 浏览
0 Comments

如何从生成器或列表中获取前N项?

这个问题已经在这里有了答案:

如何将生成器的n个下一个值转换为列表

从Python列表中获取前10个结果

使用linq,我会

var top5 = array.Take(5);

如何在Python中实现这个功能?

admin 更改状态以发布 2023年5月22日
0
0 Comments
import itertools
top5 = itertools.islice(array, 5)

:这是一段包含粗体文本的内容。

0
0 Comments

切片列表

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)

0