On Wed, 29 Oct 2008 19:24:32 -0700, erikcw wrote: > I'm trying to write a loop that will build a list of "template strings". > > My current implementation is *really slow*. It took 15 minutes to > finish. (final len(list) was about 16k entries.)
What is `list` here? Do you mean ``len(templates)``? > templates = [] > for c in combinations: > if len(states): > for state in states: > if type(geo) is City: > cities = state.city_set.all() > else: > cities = geo > for city in cities: > if type(city) is City: > city = city.city > templates.append(c.template.replace('{{ city }}', > city)) > templates.append(c.template) #just in case there are no > cities > templates = [k.replace('{{ state }}', > state.state).replace('{{ state_abbr }}', state.abbreviation) for k in > templates] It seems you are iterating over *all* accumulated templates so far, over and over again, even those which don't have those place holders anymore. Looks like the source of quadratic runtime for me. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list