从零开始学Python|如何在Python中对字典进行排序:按键排序,按值排序

Python编程语言由原始数据类型(如列表字典集合,元组等)组成。它还带有一个collections模块,该模块具有专门的数据结构(如ChainMap,deque等)。由于这些数据类型由函数组成,因此使用起来很容易这使代码高效。排序功能就是python中字典的一种这样的功能。在本文中,我们将讨论如何对字典进行排序。以下是此博客中讨论的概念:

什么是字典?

字典是一种集合数据类型,其中包含键值对,就像其他编程语言中的映射一样。

  • 字典本质上是可变的,这意味着即使在python中声明字典后也可以进行更改。
  • 它是无序的,并且只允许在值中重复输入,因为键必须是不同的。
  • 使用键作为字典中的索引来访问这些值。
  • 字典在大括号中声明。
mydictionary = { 'key1' : 'value 1' , 'key2' : 'value 2' , 'key3' : 'value 3'}
print(mydictionary)
输出:  {'key1':'value 1','key2':'value 2','key3':'value 3'}

词典中的各种操作

以下是我们可以在python中对字典执行的操作。

  1. clear
  2. copy
  3. fromkeys
  4. get
  5. items
  6. keys
  7. popitem
  8. pop
  9. setdefault
  10. update
  11. values

需要对字典进行排序

  • 字典的搜索时间复杂度为O(1),而列表的搜索时间复杂度为O(n),这使字典在必要时成为可行的选择。
  • 排序的字典在处理操作时会产生更好的理解和清晰度。
  • 排序有助于在处理任何数据结构时进行有效的分析。

如何对字典进行排序?

  1. 按键排序
  2. 按值排序
  3. 自定义排序算法–字符串,数字
  4. 倒序排序

按键排序

我们可以使用内置的排序函数,该函数将进行任何迭代并返回一个排序列表。我们可以使用键来获得升序排序的字典。

a = {1:2 ,2:1 ,4:3 ,3:4 ,6:5 ,5:6 }
#this will print a sorted list of the keys
print(sorted(a.keys()))
#this will print the sorted list with items.
print(sorted(a.items()))
输出:  [1,2,3,4,5,6] 
[(1,2),(2,1),(3,4),(4,3),(5,6),(6,5 )]

按值排序

就像键一样,我们也可以使用这些值。

a = {1:2 ,2:1 ,4:3 ,3:4 ,6:5 ,5:6 }
print(sorted.values()))
#this will print a sorted list of values.

输出:  [1,2,3,4,5,6]

自定义排序算法–字符串,数字

要执行更复杂的排序,我们可以在sorted方法中使用其他参数。

day = { 'one' : 'Monday' , 'two' : 'Tuesday' , 'three' : 'Wednesday' , 'four' : 'Thursday' , 'five': 'Friday' , 'six' : 'Saturday' , 'seven': 'Sunday'}
print(day)
number = { 'one' : 1 , 'two' : 2 , 'three' : 3 , 'four' : 4 , 'five' : 5 , 'six' : 6 , 'seven' : 7}
print(sorted(day , key=number.__getitem__))
print([day[i] for i in sorted(day , key=number.__getitem__)])
输出:  {“一个”:“星期一”,“两个”:“星期二”,“三个”:“星期三”,“四个”:“星期四”,“五个”:“星期五”,“六个”:“星期六” ,“七”:“周日”} 
[“一个”,“两个”,“三个”,“四个”,“五个”,“六个”,“七个”] 
[“星期一”,“星期二”,“星期三” ,“星期四”,“星期五”,“星期六”,“星期日”]

通过使用其他参数,我们可以使用字符串和数字以最佳方式对字典进行排序。我们也可以颠倒顺序,下面是一个示例,可以颠倒排序后的字典的顺序。

倒序排序

我们可以颠倒排序字典的顺序。以下是反转排序字典顺序的示例。

a = {1:2 ,2:1 ,4:3 ,3:4 ,6:5 ,5:6 }
print(sorted(a.values() ,  reverse= True))
输出:  [6,5,4,3,2,1]

在此博客中,我们讨论了如何在python中对字典进行排序。字典可以是处理涉及键值对的数据的一种优化方式。由于字典本质上是可变的,并且搜索时间的复杂度比列表小,因此使用字典变得更加容易。

python中的数据类型是一个重要的基本概念,它使python与众不同。易于访问并提高了可读性,它有助于其他python应用程序,例如分析和数据科学。要掌握python

(完)