On 09/01/17 21:40, Deborah Swanson wrote:
Peter Otten wrote, on January 09, 2017 6:51 AM

records = sorted(
    set(records),
    key=operator.attrgetter("Description")
)

Good, this is confirmation that 'sorted()' is the way to go. I want a 2
key sort, Description and Date, but I think I can figure out how to do
that.

There's a handy trick that you can use because the sorting algorithm is stable. First, sort on your secondary key. This will leave the data in the wrong order, but objects with the same primary key will be in the right order by secondary key relative to each other.

Then sort on your primary key. Because the sorting algorithm is stable, it won't disturb the relative order of objects with the same primary key, giving you the sort that you want!

So assuming you want your data sorted by date, and then by description within the same date, it's just:

records = sorted(
    sorted(
        set(records),
        key=operator.attrgetter("Description")
    ),
    key=operator.attrgetter("Date")
)

--
Rhodri James *-* Kynesim Ltd
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to