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

新手上路,请多包涵

使用 linq 我会

var top5 = array.Take(5);

如何用 Python 做到这一点?

原文由 Jader Dias 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 608
2 个回答

切片列表

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) 87a527881d3f40— 将对象包装在新的切片生成器中

  • 请记住,切割发电机会部分耗尽它。如果你想保持整个生成器完好无损,也许先把它变成一个元组或列表,比如: result = tuple(generator)

原文由 lunixbochs 发布,翻译遵循 CC BY-SA 4.0 许可协议

import itertools

top5 = itertools.islice(array, 5)

原文由 Jader Dias 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题