¿Cómo tomar los primeros N elementos de un generador o lista? [duplicar]

Resuelto Jader Dias asked hace 13 años • 8 respuestas

Conlinqme gustaría

var top5 = array.Take(5);

¿Cómo hacer esto con Python?

Jader Dias avatar Mar 08 '11 21:03 Jader Dias
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)

lunixbochs avatar Mar 08 '2011 15:03 lunixbochs
import itertools

top5 = itertools.islice(array, 5)
Jader Dias avatar Mar 08 '2011 14:03 Jader Dias