Fwd: aprendiendo funciones

José Luis Hinojosa E. frondoso en gmail.com
Jue Nov 18 04:11:39 CET 2004


HOLAS
Mi pregunta es ultra de principiante, pero gueno, aky va:


a([1,2,3],lambda e: e==1)

Que significa ese "lambda", porque e: e==1.....en realidad para que
sirve lambda y cual es la sintaxis... eso.. vale

---------- Forwarded message ----------
From: Pablo Rey Sobral <pabloreysobral en gmail.com>
Date: Thu, 18 Nov 2004 01:25:44 +0100
Subject: Re: [Python-es] aprendiendo funciones
To: La lista de python en castellano <python-es en aditel.org>


Hola,

> Perdon por molestarlos pero tengo una pregunta boba de
> principiante. Estoy intentando construir una funcion
> para hacer lo siguiente, con diferentes condiciones y
> variables:

No es molestia, pero te va a contestar otro novato.

> varpop=[codes]
> sum=[0]*len(codes)
> for i in range(len(pop2000)):
>         for j in range(len(codes)):
>                 if (pop2000[i]['State-county recode']==codes[j] and
> pop2000[i]['Sex']=='1'):
>                         sum[pos[j]]+=pop2000[i]['Pop00-04']

Yo la haría así(si no me equivocado en la sintaxis:

    sum=[0]*len(codes)
    for p in pop2000:
        for x, c in enumerate(codes):
            if (p['State-county recode']==c and p['Sex']=='1'):
                sum[x] += i['Pop00-04']

¿Para que te sirve varpop?



> sum=[0]*len(codes)
> def sumpop(List,Codes,Condition1,Pos,Variable):
>         for i in range(len(List)):
>                 for j in range(len(Codes)):
>                         if (Condition1):
>                                 sum[Pos[j]]+=List[i][Variable]
>         varpop.append(sum)
>         return  varpop
>
> sumpop(pop2000,codes, pop2000[i]['State-county
> recode']==codes[j] ,pos,'Pop00-04')

Empezamos:

> sumpop(pop2000,codes, pop2000[i]['State-county recode']==codes[j] ,pos,'Pop00-04')

Ni i ni j están definidas en ese momento ya que son variables internas
de la función. Y pos no se sabe lo que es

Un ejemplo que funciona:

>>> def a(x,y):
...     for s in x:
...             if y(s): print "Hola" + str(s)
...
>>> a([1,2,3],lambda e: e==1)
Hola1

Espero haberte ayudado.

Un saludo.
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es




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