[Tutor] Misc question about scoping

Emile van Sebille emile at fenx.com
Fri Jun 4 18:57:42 CEST 2010


On 6/4/2010 5:46 AM Tino Dai said...
>          I'm at a point where I can do most things in Python (maybe) ,
> now I'm looking to do them succinctly and elegantly. For instance, I
> had about 10 - 15 lines of code to do this before with a bunch of
> loops and if blocks, I distilled the product down to this:
>
>         answerDict=dict(map(lambda x: (str(x[1]),x[0]),map(lambda x: \
>            x.values(),Answer.objects.filter(fk_questionSet=1). \
>            filter(fk_question=1).values('widgetAnswer').order_by(). \
>            annotate(widgetCount=Count('widgetAnswer')))))
>

The first time there's a suspected problem with this code, you'll 
probably end up with a similar refactored set of 10-15 lines.  I'm sure 
because I've got code like that scattered throughout my codebase and 
that's what I end up doing.  The difference is that I rattle off the 
one-liners as part of the original coding effort, and only break it out 
when there's a need to -- I'm not striving to compact things into 
one-liners.

BTW, doesn't

    dict(map(lambda x: (str(x[1]),x[0]),map(lambda x:x.values()

simply map the values of a dict back into a dict?

Emile








More information about the Tutor mailing list