¿Cómo tomar los primeros N elementos de un generador o lista? [duplicar]
Conlinqme gustaría
var top5 = array.Take(5);
¿Cómo hacer esto con Python?
Aceptado
Cortar una lista
top5 = array[:5]
- Para dividir una lista, existe una sintaxis simple:
array[start:stop:step]
- Puede omitir cualquier parámetro. Todos estos son válidos:
array[start:]
,array[:stop]
,array[::step]
Cortar un generador
import itertools
top5 = itertools.islice(my_list, 5) # grab the first five elements
No puedes dividir un generador directamente en Python.
itertools.islice()
envolverá un objeto en un nuevo generador de corte usando la sintaxisitertools.islice(generator, start, stop, step)
Recuerde, cortar un generador lo agotará parcialmente. Si desea mantener intacto todo el generador, quizás primero conviértalo en una tupla o lista, como:
result = tuple(generator)
import itertools
top5 = itertools.islice(array, 5)