使用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)
itertools.islice()
itertools.islice(generator, start, stop, step)
请记住,切割发电机会部分耗尽它。如果你想保持整个生成器完好无损,也许先把它变成一个元组或列表,比如:result = tuple(generator)
result = tuple(generator)