python 字典键值对的排序




d = {'a':1,'b':4,'c':2}
 
sorted(d.items(),key = lambda x:x[1],reverse = True)

对于字典的键值对排序时我有两个地方不明白:
1.key = lambda x 这个匿名函数是干什么的
2.为什么非要是“key”,换成其他变量为什么不行

  • 先说2 这个不可以改,key是sorted函数的一个参数,你不可以修改,表示sorted按照数据的哪个部分进行排序
  • 再说1,因为要按值排序,而使用的数据是d.items()在,这是一个列表(此处是 dict_items([('a', 1), ('b', 4), ('c', 2)]) ),每个键值对构成一个元组,所以为了获取每个键值对的值进行排序,传给参数key,所以使用lambda函数,将lambda函数(冒号前是参数,冒号后是返回值)的参数x,返回x[1]来索引得到键值对的值

    img