How to sort a dictionary in Python?
Sort the dictionary? This is actually a false proposition. Please understand the definition of Python dictionary---the dictionary itself is output and displayed in the character order of key by default---just like the real dictionary we use, it is arranged in the order of ABCD letters, and essentially each There is no sequence relationship, it is a hash table structure.
But in actual applications, we do have the "requirement" of this kind of sorting -----"sort" the output according to the value of values, or output in other strange order, we only need to convert the dictionary Into a list or tuple, convert each pair of key values in the dictionary into a two-digit list or sub-tuple in the list and then output it, we can achieve our purpose:
For example:
d1 = {'a':1,'c':4,'b':2,'d':3} d2 = {2:1,3:4,4:2,1:5,5:3} d3 = {'01': {'name': '电脑', 'price': 3000}, '02': {'name': '鼠标', 'price': 50}, '03': {'name': '洗发水', 'price': 30}, '04': {'name': '微波炉', 'price': 998}, '05': {'name': '手机', 'price': 1500}}
Related Recommended: "Python Video Tutorial"
Requirement 1: Sort the output according to the key/value of the dictionary
Method 1: Use the sorted function
sorted(d1.items(),key = lambda x:x[0],reverse = True) # reverse = True:是递减顺序输出,不写默认是升序输出 key = lambda x:x[0]表示在d1.items()的输出内容中的第一列作为排序依据,如果是按照value排序则改成x[1]即可。
d1/d2 dictionary is relatively simple and easy to understand. Let’s take a look at how to sort nested dictionaries such as d3:
sorted(d.items(),key=lambda x:x[1]['price'])
Method 2: Use the operator Modeling module
import operator sorted(d1.items(),key = operator.itemgetter(1))
The current experiments of this module have not been successful for data structures such as d3.
The above is the detailed content of How to sort a dictionary in python. For more information, please follow other related articles on the PHP Chinese website!