On Apr 17, 11:25 pm, Steven Bethard <[EMAIL PROTECTED]> wrote: > Steve Holden wrote: > > Johnny Blonde wrote: > >> Hello Group! > > >> I really tried hard for two hours to rewrite the following expression > >> (python 2.4): > >> -------------------------- > >> teilnehmer = [] > >> for r in Reisen.select(AND(Reisen.q.RESVON <= datum, Reisen.q.RESBIS > >>> = datum)): > >> for g in r.BUCHUNGEN: > >> for t in g.aktiveTeilnehmer: > >> teilnehmer.append(t) > >> -------------------------- > > >> to something like > >> -------------------------- > >> teilnehmer = [x for x in ........] > >> -------------------------- > > >> Reisen is a SQLObject class, Reisen.select(...), aktiveTeilnehmer and > >> BUCHUNGEN all are of the type SelectResults. > > >> unfortunately i just canĀ“t figure it out to make it work. > >> i hope someone maybe can help me? > > >> I hope to gain performance by rewriting it... > > >> Thanks a lot for your help! > > > >>> lt = [[[1,2,3], [2,3,4]], [[3,4,5], [4,5,6]]] > > >>> lf = [c for a in lt for b in a for c in b] > > >>> lf > > [1, 2, 3, 2, 3, 4, 3, 4, 5, 4, 5, 6] > > > Untested: > > > teilnehmer = [t for r in Reisen.select(AND(Reisen.q.RESVON <= datum, > > reisen.q.RESBIS >= datum)) for g in r.BUCHUNGEN for t in > > g.aktiveTeilnehmer] > > Note also that you can probably get most of the speedup above by binding > the append method to a function-local name:: > > teilnehmer = [] > append = teilnehmer.append > for r in Reisen.select(...): > for g in r.BUCHUNGEN: > for t in g.aktiveTeilnehmer: > append(t) > > That's pretty much all a list comprehension is doing anyway. > > STeVe
hi steve, why would binding to a function-local name speeds up performance? sorry for asking such a simple question. many thanks. -- http://mail.python.org/mailman/listinfo/python-list