Charles Heizer wrote: > Never mind, the light bulb finally went off. :-\ > > sortedlist = sorted(mylist , key=lambda elem: "%s %s" % ( elem['name'], > (".".join([i.zfill(5) for i in elem['version'].split(".")])) ), > reverse=True)
This lightbulb will break with version numbers > 99999 ;) Here are two alternatives: result = sorted( mylist, key=lambda elem: (elem['name'], LooseVersion(elem['version'])), reverse=True) result = sorted( mylist, key=lambda e: (e["name"], tuple(map(int, e["version"].split(".")))), reverse=True) Personally, I prefer to not use a lambda: def name_version(elem): return elem['name'], LooseVersion(elem['version']) result = sorted(mylist, key=name_version, reverse=True) -- https://mail.python.org/mailman/listinfo/python-list