[LUG.ro] consulta de python

Santiago Suarez Ordoñez santiycr en gmail.com
Lun Mar 30 13:07:12 ART 2009


2009/3/30 x-ip <edvm en rcom.com.ar>:
> El lun, 30-03-2009 a las 11:52 -0300, Sebastian Dominguez escribió:
>> Luis escribió:
>> > [...]        try:
>> >             filtered = [{"aid" : album["aid"], "name" : album["name"]}
>> > for album in albums if album["aid"] == id][0]
>> >
>> >
>> Entiendo poco de python, pero no esta mal un corchete ahi? El primer
>> corchete se cierra luego del ultimo id y antes de los corchetes del
>> ultimo indice...
>>
> Esta bien seba, 'desarmando' la expresion resulta:
>
> (comienza la lista cohomprensiva)
> [
> {"aid" : album["aid"], "name" : album["name"]}
> for album in albums if album["aid"] == id] (cierra la lista)
>
> [0](devolver el primer elemento de la lista)

De todas formas me parece más entendible y mejor desarrollado hacer:

for album in albums:
    if album["aid"] == id:
        filtered = album
        break

Así no armás toda una lista de los elementos filtrados para luego solo
tomar el primero y además le ahorrás a todo el mundo perder 15 minutos
tratando de entender porque una list complehension que genera una
lista cuando que en verdad necesita solo un elemento...

PD: Seguramente hay una función de itertools super simple que lo hace
solo, pero en este momento estoy medio vago...


-- 
Saludos
Santi



Más información sobre la lista de distribución Lugro