Sorting a List of Objects by an Attribute of the Objects Case-Insensitively
Paddy
paddy3118 at googlemail.com
Wed Apr 9 00:58:45 EDT 2008
On Apr 9, 4:04 am, Jason <elgrandchig... at gmail.com> wrote:
> Hi folks--
>
> Basically, I have a pressing need for a combination of 5.2 "Sorting a
> List of Strings Case-Insensitively" & 5.3 "Sorting a List of Objects
> by an Attribute of the Objects" from the Python Cookbook.
>
> My first guess isn't working:
>
> import operator
> def sort_by_attr(seq, attr):
> key=operator.attrgetter(attr)
> key=str.lower
> return sorted(seq, key)
>
> ...would much appreciate any guidance!
HiJason,
Try key= lambda x: x.attr.lower()
The above should calculate the key only once for the items to be
sorted rather than using cmp which calculates more than that.
- Paddy.
More information about the Python-list
mailing list