On Tue, Jun 18, 2013 at 10:34:23PM -0700, Jim Mooney wrote: > On 18 June 2013 19:41, Steven D'Aprano <st...@pearwood.info> wrote: > > On Tue, Jun 18, 2013 at 06:41:01PM -0700, Jim Mooney wrote: > >> Is there a way to unstring something? That is str(object) will give me > >> a string, but what if I want the original object back, for some > >> purpose, without a lot of foofaraw? > > > > The short answer is, "no". > > It just occurred to me that a sort key can sort by changing the input > to return a string, but the actual list member is not changed to a > string, so maybe there's a fudge there.
Nope, sorting with a key function uses the "DSU" (Decorate Sort Undecorate) idiom. Up until a few versions back (2.3 or 2.4, I think), you used to have to do this by hand: # sort numbers in dictionary order, not numeric L = list(range(25)) L = [(str(item), item) for item in L] # decorate L.sort() L = [t[1] for t in L] # undecorate print(L) Python's sort now does this for you: L.sort(key=str) sorted(L, key=str) but the way it's done under the hood is pretty much identical. -- Steven _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor