Python 3.0 - is this true?

Terry Reedy tjreedy at udel.edu
Sat Nov 8 23:00:27 EST 2008


Steven D'Aprano wrote:
> On Sat, 08 Nov 2008 19:02:28 +0000, Arnaud Delobelle wrote:
> 
>>> And, if so, why are they doing this?
>> How is it helpful to be able to sort things which have no natural order?
> 
> Assuming you need to sort arbitrary types, then you have to choose an 
> order, even if it is arbitrary, so long as it's consistent.
> 
> I agree that Python shouldn't try to guess how to order incomparable 
> types, nor how to order unorderable types, but I'm pretty sure that by 
> using the key argument to sort you can specify your own ordering. I don't 
> have Python 3 installed here, but some variation on this will probably 
> work:
> 
>>>> alist = [2+3j, -4+5j, 8+2j, 1-7j, 6]
>>>> sorted(alist, key=str)
> [(-4+5j), (1-7j), (2+3j), (8+2j), 6]

> Define your own ordering if you need to sort incomparable types.

Yes, key= lets you sort anything anyway you want.
 >>> l=[1, '2', 3j]
 >>> sorted(l, key = str)
[1, '2', 3j]
 >>> sorted(l, key = id)
['2', 3j, 1]





More information about the Python-list mailing list