python3字典如何进行排序

  介绍

这篇文章将为大家详细讲解有关python3字典如何进行排序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创建一个字典

dict1={& # 39;一个# 39;:2 & # 39;b # 39;: 3 & # 39; c # 39;: 8日& # 39;d # 39;: 4}

1,分别取键,值

取字典的所有键,所有的值,利用dict1.keys (), dict1.vaules ()

由于键,值有很多个,所以要加年代,另外注意这里要加括号,这样的小细节不注意,很容易犯的错。

打印(dict1.values (), dict1.keys ())

结果:

dict_values([4,, 2,, 8日,3]),dict_keys ((& # 39; d # 39;,, & # 39;一个# 39;,,& # 39;c # 39;,, & # 39; b # 39;])

可以看的出,返回的是列表的形式

2,同时取键,值

同时取字典的键,值,dict1.items(),这里同样加年代和括号

打印(dict1.items ())

结果:

dict_items (((& # 39; d # 39;,, 4),,(& # 39;一个# 39;,,2),,(& # 39;c # 39;,, 8),, (& # 39; b # 39;,, 3)])

可以看的出,返回的结果是元组组成的列表

也就是说,通过dict1.items()这个函数,把字典形式的键,值,存在了一个元组内。

3排序

3.1分类

先看一下,直接用排序()排序的情况。

dict1={& # 39;一个# 39;:2 & # 39;e # 39;: 3 & # 39; f # 39;: 8日& # 39;d # 39;: 4}   时间=dict2 排序(dict1)   打印(dict2)

结果:

[& # 39;一个# 39;,,& # 39;d # 39;,, & # 39; e # 39;,, & # 39; f # 39;]

排序()默认是对字典的键,从小到大进行排序

3.2,对键反向排序

对键进行反向(从大到小)排序

dict1={& # 39;一个# 39;:2 & # 39;e # 39;: 3 & # 39; f # 39;: 8日& # 39;d # 39;: 4}   时间=dict2 排序(dict1反向=True)   打印(dict2)

结果:

[& # 39;f # 39;,, & # 39; e # 39;,, & # 39; d # 39;,, & # 39;一个# 39;]

像这种对键进行排序,往往是为了得到值(值)

拿到键最大,对应的值,如:

打印(dict1 [dict2[0]]) #结果为8

当然我们也可以先拿到所有的关键,然后再对关键排序

dict1={& # 39;一个# 39;:2 & # 39;e # 39;: 3 & # 39; f # 39;: 8日& # 39;d # 39;: 4}   list1=,排序(dict1.keys(),反向=True)   打印(list1),,,, #,结果:[& # 39;f # 39;,, & # 39; e # 39;,, & # 39; d # 39;,, & # 39;一个# 39;]

3.3,对值排序

同样,用dict1.values()得到所有的价值观,然后对价值排序

dict1={& # 39;一个# 39;:2 & # 39;e # 39;: 3 & # 39; f # 39;: 8日& # 39;d # 39;: 4}   list1=,排序(dict1.values ())   打印(list1),,,, #结果:[2,3,4,8]

设值反向=True进行反向排序

也可以用dict1.items(),得到包含键,值的元组

由于迭代对象是元组,返回值自然是元组组成的列表

这里对排序的规则进行了定义,x指元组,x[1]是值,x[0]是键

dict1={& # 39;一个# 39;:2 & # 39;e # 39;: 3 & # 39; f # 39;: 8日& # 39;d # 39;: 4}   list1=,排序(dict1.items(),关键=lambda  x: x [1])   打印(list1)

结果:

((& # 39;一个# 39;,,2),,(& # 39;e # 39;,, 3),, (& # 39; d # 39;,, 4),, (& # 39; f # 39;,, 8)]

对键进行排序:

dict1={& # 39;一个# 39;:2 & # 39;e # 39;: 3 & # 39; f # 39;: 8日& # 39;d # 39;: 4}   list1=,排序(dict1.items(),关键=lambda  x: x [0])   打印(list1)

结果:

((& # 39;一个# 39;,,2),,(& # 39;d # 39;,, 4),, (& # 39; e # 39;,, 3),, (& # 39; f # 39;,, 8)]

4 itemgetter

得到operator  import  itemgetter   d =, {“a": 8“b": 4,“c": 12}   print(排序(d.items()、关键=itemgetter(0),反向=True))   print(排序(d.items()、关键=itemgetter(1)反向=True))

结果:

((& # 39;c # 39;,, 12),, (& # 39; b # 39;,, 4),,(& # 39;一个# 39;,,8))   ((& # 39;c # 39;,, 12),,(& # 39;一个# 39;,,8),,(& # 39;b # 39;,, 4)]

itemgetter(0),获取关键

itemgetter(1),获取价值

关于python3字典如何进行排序就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

python3字典如何进行排序