On 11 Mrz 2006, [EMAIL PROTECTED] wrote: > I'm trying to think of a way to sort a list of dictionaries. In pseudo-code: > > l = [ { "host":"foo", "db":"bob"}, > { "host":"foo", "db":"dave"}, > { "host":"fee", "db":"henry"} > ] > > l.sort( key = lambda item: item["host"], second_key = lambda item: item["db"]) > > Which, if all went well, would give me - > > l = [ { "host":"fee", "db":"henry"} > { "host":"foo", "db":"bob"}, > { "host":"foo", "db":"dave"}, > ] > > So, I'm trying to sort and then do a secondary sort. I'd like to do it > Pythonically; currently I'm creating a Pysqlite db in memory and > sticking the data in a table, and selecting it back out with an ORDER > BY clause, and then reconstituting it into dictionaries in a list.
One easy way could be: .>>> l = [ { "host":"foo", "db":"bob"}, . { "host":"foo", "db":"dave"}, . { "host":"fee", "db":"henry"} . ] .... ... ... >>> l.sort(key=lambda d: (d['host'], d['db'])) .>>> l .[{'host': 'fee', 'db': 'henry'}, {'host': 'foo', 'db': 'bob'}, {'host': 'foo', 'db': 'dave'}] Or you write the above explicitly with DSU; decorate with a tuple of host name and db name, sort and undecorate. Karl -- Please do *not* send copies of replies to me. I read the list _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor