小编典典

如何从生成器或列表中获取前 N 个项目?[复制]

all

使用linq我会

var top5 = array.Take(5);

如何用 Python 做到这一点?


阅读 96

收藏
2022-03-24

共1个答案

小编典典

切片列表

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)

2022-03-24