sobre listas

Marcos Sánchez Provencio rapto en arrakis.es
Mie Ago 20 10:41:11 CEST 2003


Ya sí :-)

def map(funcion,lista):
     ret=[]
     for elem in lista:
         ret.append(funcion(elem))
     return ret

def count(lista, buscado):
     ret=0
     for elem in lista:
         if elem==buscado:
             ret=ret+1
     return ret

def index(lista, buscado):
     n=0
     for elem in lista:
         if elem==buscado:
             return n
         n=n+1
     return -1

if __name__=='__main__':
     lista=['uno','dos','dos','tres','tres','tres']
     def fun(s):
         return s*2
     print 'map', map(fun,lista)
     print 'count', count(lista,'dos')
     print 'index', index(lista,'tres')

Sonia wrote:
> demasiado para mi. en mi temario no entra ni map, ni count,  ni index ni
> nada de eso. lo tendre q hacer po metodo tradicional (y largo)
> ahora lo intento!
> 
> 
> ----- Original Message -----
> From: Chema Cortés <ch3m4 en ch3m4.org>
> To: <python-es en aditel.org>
> Sent: Tuesday, August 19, 2003 9:30 AM
> Subject: [Python-es] Re: sobre listas
> 
> 
> 
>>Chema Cortés escribió:
>>
>>
>>>Una solución algo más bestia, pero que también valdría para unicodes:
>>>
>>>frec = [ todo.count(c) for c in todo ]
>>>letra = todo[frec.index(max(frec))]
>>
>>Tomando un café me ha venido la inspiración de algunas versiones "menos
>>bestias", válidas para unicodes. Ya advierto que algunas son bastantes
>>complicadas:
>>
>>listapal = ['hola','mundo','otra','vez',u'\N{EURO SIGN}'*10]
>>todo = ''.join(listapal)
>>
>>####
>>#versión 1
>>
>>keys=dict.fromkeys(todo).keys()  #nuevo en python 2.3
>>frec=[ todo.count(k) for k in keys ]
>>letra=keys[frec.index(max(frec))]
>>
>>####
>>#versión 2
>>
>>D=dict.fromkeys(todo)  #nuevo en python 2.3
>>for k in D.keys():
>>     D[k]=todo.count(k)
>>letra=[ k for k,v in D.items() if v==max(D.values()) ][0]
>>
>>####
>>#versión 3, que funciona también en python 2.2.x
>>
>>keys=[]
>>
>>frec=[ todo.count(c) for c in todo
>>        if c not in keys and not keys.append(c) ]
>>
>>letra=keys[frec.index(max(frec))]
>>
>>####
>>#versión 4 "Absurda", pero va también en python 2.2.2
>>
>>keys=[ c for c in todo if c not in locals()['_[1]'].__self__ ]
>>frec=[ todo.count(k) for k in keys ]
>>letra=keys[frec.index(max(frec))]
>>
>># Explicación:
>># http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/204297




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