On Wed, Oct 10, 2012 at 3:52 PM, Ed Owens <eowens0...@gmx.com> wrote: > > import string
Why are you importing "string"? Most string functions one would need are methods of str/unicode. Sometimes "string" is still required, however. > def add_element(items, point): > items = items[:point+1][:] + [['new']] + items[point+1:] > return items items[:point+1][:] creates a copy of part of the list with the slice [:point+1], and then it copies the copy with the slice [:]. Redundant operations aside, this is returning a new list object. That's not going to work since the loop iterator is bound to the original list. You can't rebind a listiterator in the middle of a for loop. Also, generally avoid mutating a list while iterating over it. listiterator is just incrementing an index, so modifying the size of the list can produce nonsense (e.g. if you remove the current item, the next item will be skipped). Instead, create an empty list and append() to it. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor