[Tutor] samples on sort method of sequence object.

Stefan Behnel stefan_ml at behnel.de
Thu Jan 14 10:13:04 CET 2010


Lie Ryan, 14.01.2010 01:47:
> On 01/14/10 06:56, Hugo Arts wrote:
>> On Wed, Jan 13, 2010 at 8:21 PM, Stefan Behnel <stefan_ml at behnel.de> wrote:
>>> Hugo Arts, 13.01.2010 15:25:
>>>> Here is my solution for the general case:
>>>>
>>>> from itertools import groupby
>>>> def alphanum_key(string):
>>>>    t = []
>>>>    for isdigit, group in groupby(string, str.isdigit):
>>>>        group = ''.join(group)
>>>>        t.append(int(group) if isdigit else group)
>>>>    return t
>>> Note that this won't work in Py3, where integers and strings are not
>>> ordered, i.e. not comparable w.r.t the < and > operators.
>>>
>> True. You can accommodate by writing a ComparableInt class extending
>> int, and implement __lt__ and __gt__.
>> It's not exactly succinct, but it works.
> 
> Not necessary, you can just pass the cmp= parameter to sort that checks
> the chunk's type.

Note that this won't work in Py3, where the "cmp" parameter is gone.

Stefan



More information about the Tutor mailing list