On Saturday, January 18, 2014 2:06:29 PM UTC+5:30, Peter Otten wrote:
> Options I can think of:
> You could do it in two steps...
> time_name_pairs = ((localtime(then), name) for then, name in mylist)
> labels = [somefunc(t.tm_mon, t.tm_mday, t.tm_wday, name)
> for t, name in time_name_pairs]
> ...or you could inline the helper function...
> mon_mday_wday = operator.attrgetter("tm_mon", "tm_day", "tm_wday")
> labels = [somefunc(*mon_mday_wday(localtime(then)), name=name)
> for then, name in mylist]
> -- but both seem less readable than the classical for-loop.
> What would a list-comp with `let` or `where` look like? Would it win the
> beauty contest against the loop?
For me this is neat
[somefunc(mn,day,wd,name) for (then, name) in mylist let (_,mn,dy,_,_,_,wd,_,_)
= localtime(then)]
Others may not find it so!
See it across > 1 line (as I guess it will come after being posted!) and its
not so neat.
--
https://mail.python.org/mailman/listinfo/python-list