简体   繁体   中英

Python sorting a list of dictionaries by the value of a key

Sorry my first post has to be a question. I did some searching and couldn't find the way to sort a list of dictionaries based on one key.

Assume I have this list of dictionaries

[0]{Number:123, Name:Bill, Age:32, Sex:Male}
[1]{Number:93, Name:Billy, Age:23, Sex:Male}
[2]{Number:113, Name:Billie, Age:32, Sex:Female}
[3]{Number:8, Name:Wills, Age:3, Sex: Male}
[4]{Number:8, Name:Wills, Age:4, Sex: Male}
[5]{Number:8, Name:Wills, Age:5, Sex: Male}
[6]{Number:8, Name:Wills, Age:6, Sex: Male}

I'd like to sort or iterate over this list on Number:value and then by Age:value so that the new list is like this

[0]{Number:8, Name:Wills, Age:3, Sex: Male}
[1]{Number:8, Name:Wills, Age:4, Sex: Male}
[2]{Number:8, Name:Wills, Age:5, Sex: Male}
[3]{Number:8, Name:Wills, Age:6, Sex: Male}
[4]{Number:93, Name:Billy, Age:23, Sex:Male}
[5]{Number:113, Name:Billie, Age:32, Sex:Female}
[6]{Number:123, Name:Bill, Age:32, Sex:Male}

So far I've only been able to sort a key inside the list, which sorted the dict entry within the list, and kept the list indexes the same. Which wasn't what I wanted.

sorted_data_list = sorted(data_list, key = lambda x: x['Number']) 

edit: made list contiguous.

Change the key to lambda x: (x['Number'], x['Age'])

This creates a tuple, and tuples are sorted by first element, then second element.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM