On Wed, 30 Jun 2010 21:04:28 -0700, Stephen Hansen wrote: > On 6/30/10 8:50 PM, Mladen Gogala wrote: >>>>> x="quick brown fox jumps over a lazy dog" >>>>> y=''.join(list(x).reverse()) >> Traceback (most recent call last): >> File "<stdin>", line 1, in<module> >> TypeError >>>>> >>>>> >> >> Why is TypeError being thrown? The reason for throwing the type error >> is the fact that the internal expression evaluates to None and cannot, >> therefore, be joined: > > The "reverse" method, like "sort" and a couple others, are in-place > operations. Meaning, they do not return a new list but modify the > existing list. All methods that are "in-place" modifications return None > to indicate this. This way you can't make a mistake and think its > returning a sorted / reversed copy but it isn't.
Thanks. > > However, you can easily get what you want by using the 'reversed' > function (and similarly, the 'sorted' function), a la: > > >>> y = ''.join(reversed(list(x))) > > The 'reversed' and 'sorted' functions are generators that lazilly > convert an iterable as needed. Ah, that is even better. Thanks. -- http://mgogala.byethost5.com -- http://mail.python.org/mailman/listinfo/python-list