[Python-es] extraer secuencias no adyacentes

Arnau Sanchez pyarnau en gmail.com
Dom Abr 18 21:39:45 CEST 2010


On 17/04/10 23:07, monoBOT wrote:

> nuevalista=[]
> for m in range(0, len(lista_de_textolargo),2):
>      nuevalista.append(lista_de_textolargo[m])
> print nuevalista

La construcción "lista = [] + for + lista.append(...)" no es idiomática. Mejor 
usar listas/generadores por compresión:

nuevalista = [lista_de_textolargo[m] for m in range(0, len(lista_de_textolargo),2)]

o según el caso, generadores:

def generador():
     for m in range(0, len(lista_de_textolargo),2)
         yield lista_de_textolargo[m]
nuevalista = list(generador())

En todo caso, ¿cuál es la diferencia de ese código con esto?

lista_de_textlargo[::2]



Más información sobre la lista de distribución Python-es