Home  >  Article  >  Backend Development  >  How to sort a dictionary in python

How to sort a dictionary in python

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-08-02 10:12:083639browse

How to sort a dictionary in python

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn