Skip to content

Instantly share code, notes, and snippets.

@burakdede
Created August 21, 2016 18:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save burakdede/6bee985bfce232a8332da110554f87b2 to your computer and use it in GitHub Desktop.
Save burakdede/6bee985bfce232a8332da110554f87b2 to your computer and use it in GitHub Desktop.
Sort with lambda vs itemgetter from operator
"""
[{'fname': 'Big', 'lname': 'Jones', 'uid': 1004}, {'fname': 'John', 'lname': 'Jones', 'uid': 1003}, {'fname': 'John', 'lname': 'Jones', 'uid': 8888}, {'fname': 'John', 'lname': 'Jones', 'uid': 9999}, {'fname': 'Rick', 'lname': 'Cleese', 'uid': 1001}, {'fname': 'Steve', 'lname': 'Madden', 'uid': 1002}]
[{'fname': 'Big', 'lname': 'Jones', 'uid': 1004}, {'fname': 'John', 'lname': 'Jones', 'uid': 1003}, {'fname': 'John', 'lname': 'Jones', 'uid': 8888}, {'fname': 'John', 'lname': 'Jones', 'uid': 9999}, {'fname': 'Rick', 'lname': 'Cleese', 'uid': 1001}, {'fname': 'Steve', 'lname': 'Madden', 'uid': 1002}]
"""
from operator import itemgetter
rows = [
{'fname': 'John', 'lname': 'Jones', 'uid': 1003},
{'fname': 'John', 'lname': 'Jones', 'uid': 9999},
{'fname': 'John', 'lname': 'Jones', 'uid': 8888},
{'fname': 'Steve', 'lname': 'Madden', 'uid': 1002},
{'fname': 'Rick', 'lname': 'Cleese', 'uid': 1001},
{'fname': 'Big', 'lname': 'Jones', 'uid': 1004}
]
print(sorted(rows, key=itemgetter("fname", "uid")))
print(sorted(rows, key=lambda x: (x["fname"], x["uid"])))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment