Jim Jewett writes: > Given an arbitrary collection of objects, I want to be able to order > them in a consistent manner, at least within a single interpreter > session.
I think this meets your specifications: >>> myList = [2.5, 17, object(), 3+4j, 'abc'] >>> myList.sort(key=id) I prefer Guido's suggestion (id=lambda x: (type(x), x)), but it doesn't handle types that are not comparable (like the complex number I included to be perverse). Frankly, I don't know why you have an "arbitrary collection of objects" -- the only things I have ever dealt with that handled truly _arbitrary_ collections of objects were garbage collectors and generic caching mechanisms. In either case you really *wouldn't* care how things sorted so long as it was consistant, and then sorting by id works nicely. Of course, I doubt this is what you're doing because if you REALLY had arbitrary objects (including uncomparable things like complex numbers) then you would already need to be doing this today and your code wouldn't even need to be modified when you upgraded to 3.0. -- Michael Chermside _______________________________________________ Python-3000 mailing list [email protected] http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com
