python对字典按照 key 或者 value 进行排序

假设 有字典tmp={1:4,2:3}

需要知道的

tmp.keys()

返回的是词典的keyde 迭代对象,注意不是list 其返回的是一个dict_keys object

>>> tmp={1:4,2:3}
>>> tmp.keys()
dict_keys([1, 2])
>>> l=tmp.keys()
>>> l[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'dict_keys' object does not support indexing
>>> for key in l:
...  print(key)
... 
1
2
>>> 

tmp.items()

返回的是元组(key,value)的迭代对象(dict_items’ object) ,其中每个元组是和字典的元素一一对应的,注意不是list

>>> tmp={1:4,2:3}
>>> tmp.items()
dict_items([(1, 4), (2, 3)])
>>> l=tmp.items()
>>> l[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'dict_items' object does not support indexing
>>> for item in l:
...  print(item)
... 
(1, 4)
(2, 3)
>>> 

sorted

1.sorted函数按key值对字典排序

sorted(iterable,key,reverse)
参数。

iterable:表示可以迭代的对象,例如可以是dict.items()、dict.keys()等
key:是一个函数,用来选取参与比较的元素
reverse:则是用来指定排序是倒序还是顺序,reverse=true则是倒序(从大到小), reverse=false 时则是顺序(从小到大),默认时reverse=false。

sorted函对字典进行排序

按照key 进行排序

注意 里面包括保留value 和 不保留 value的区别 还有排序的模式

>>> tmp={1:4,2:3}
>>> tem_sort=sorted(tmp.keys())
>>> tem_sort
[1, 2]
>>> tem_sort=sorted(tmp.items(),key=lambda item:item[0])
>>> tem_sort
[(1, 4), (2, 3)]
>>> tem_sort=sorted(tmp.items(),key=lambda item:item[0],reverse=True)
>>> tem_sort
[(2, 3), (1, 4)]

按照 进行排序

要注意 lambda item:item[1]

>>> tmp={1:4,2:3}
>>> tem_sort=sorted(tmp.items(),key=lambda item:item[1],reverse=True)
>>> tem_sort
[(1, 4), (2, 3)]
>>> tem_sort=sorted(tmp.items(),key=lambda item:item[1])
>>> tem_sort
[(2, 3), (1, 4)]


猜你喜欢

转载自blog.csdn.net/qq_32806793/article/details/83046712