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





How to get the n next values of a generator in a list (python)

(5 个回答)


4年前关闭。




使用 linq 我会

var top5 = array.Take(5);

如何用 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)
  • 关于python - 如何从生成器或列表中获取前 N 个项目?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5234090/

    10-13 09:45