Python 这个听写理解在这个程序中是如何工作的?

Python 这个听写理解在这个程序中是如何工作的?,python,Python,帮助理解听写理解 按值对dict排序 aDict = {'Maharashtra': 4238, 'Delhi': 2003, 'Gujarat': 1743, 'Rajasthan': 1478, 'Tamil Nadu': 1477} sorted_dict = {k:v for k,v in sorted(aDict.items(), key= lambda item:items[1])} 代码背后的想法似乎是生成一个排序字典 这在p

帮助理解听写理解 按值对dict排序

   aDict = {'Maharashtra': 4238,
     'Delhi': 2003,
     'Gujarat': 1743,
     'Rajasthan': 1478,
     'Tamil Nadu': 1477}
    sorted_dict = {k:v for k,v in sorted(aDict.items(), key= lambda item:items[1])}

代码背后的想法似乎是生成一个
排序字典

这在python中通常不是一件事,除非在最近的版本中,
dict
类型已更改为按添加项目的顺序保存项目

dict
理解按值的顺序添加来自
aDict
的项,因此理解将保持此顺序

代码的思想是,它生成具有以下值的
sorted\u dict

{'Tamil Nadu': 1477, 'Rajasthan': 1478, 'Gujarat': 1743, 'Delhi': 2003, 'Maharashtra': 4238}

如果我是正确的,那么这段代码的思想是创建按值排序的dict,但存在一些问题:

key=lambda-item:items[1]
lambda中的items未定义,因此python将引发异常

想法:

1) 排序函数将返回元组列表
(键,值)
按值从最小到最大排序

[('Tamil Nadu',1477),('Rajasthan',1478),('Gujarat',1743),('Delhi',2003),('Maharashtra',4238)]

2) 口述理解将以升序创建词典

{'Tamil Nadu':1477,'Rajasthan':1478,'Gujarat':1743,'Delhi':2003,'Maharashtra':4238}


如果您关心字典中的顺序,我可以建议您使用OrderedDict

您具体询问的是什么?顺便说一句,您的代码中有一个错误。请用完整的错误回溯更新您的问题。