> I've been > using string concatenation to read through the string, and then create > the new one based on a dictionary lookup. However it becomes very slow > once the string gets very long (several thousand characters). [...] > I was wondering if there might be a > faster alternative to string concatenation. Would appending to a list > of strings be faster?
without knowing more about your application, my 1st inclination would be to turn your code that "appends" each successive addition to the string into a generator function. then when you need to final massively large string, i'd use a generator expression inside the call to the delimiter's join() method. for example: def nextLsystem(...): : for n in range(XXX): # blah-blah stuff in a loop yield nextStr final = ''.join(x for x in nextLsystem(XXX)) i like this code because it doesn't keep building up a data structure like continuously concatenating strings nor continually appending to a list, both of which are memory-intensive. i'm using a generator to create each successive string, without saving previous result necessarily. then the generator expression -- unlike a list comprehension which must build an entire list -- passes each string to join(), which then creates the final string. i'm sure others have better ideas, but like it said, it's just a gut shot from me here. good luck! -- wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "Core Python Programming", Prentice Hall, (c)2007,2001 http://corepython.com wesley.j.chun :: wescpy-at-gmail.com python training and technical consulting cyberweb.consulting : silicon valley, ca http://cyberwebconsulting.com _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor