Custom alphabetical sort

Dave Angel d at davea.name
Tue Dec 25 01:18:37 EST 2012


On 12/24/2012 06:19 PM, Pander Musubi wrote:
> <snip>

> to prevent
>
> Traceback (most recent call last):
>   File "./sort.py", line 23, in <module>
>     things_to_sort.sort(key=string2sortlist)
>   File "./sort.py", line 15, in string2sortlist
>     return [hashindex[s] for s in string]
> KeyError: '\xc3'
>
> Thanks very much for this efficient code.

Perhaps you missed Ian Kelly's correction of Thomas Bach's approach:

d = { k: v for v, k in enumerate(cs) }


def collate(x):
    return list(map(d.get, x))

sorted(data, key=collate)

I'd use Ian Kelly's approach.  It's not only more compact, it shouldn't
give an exception for a character not in the table.  At least, not for
Python 2.x.  I'm not sure about Python 3, since it can give an exception
comparing None to int.


-- 

DaveA




More information about the Python-list mailing list