Python旧版课程库
Python第 03 期 - 基础查看课程总览

089_自学课 数据结构 - 字典排序

主要内容

  1. 字典元素排序
  2. 列表字典排序

1. 字典元素排序

字典本身是无序的,想要排序的话,就必须先转化成可排序的数据结构,常见的是列表。 对列表的排序可通过python的内置函数sorted()执行,语法如下: list1 = sorted(iterable, key=None, reverse=False) 参数说明: iterable:可迭代对象 key:用于比较的元素 reverse:排序规则,reverse=True(降序排序),reverse=False (升序排序) 功能: 返回重新排序的列表,赋值给list1

Chinese = {"Xiao": 85 , "Li": 96, "Da": 80}

#通过字典内置函数items()返回可迭代对象
#对字典的‘键’进行升序排序
list1 = sorted(Chinese.items(), key=lambda x:x[0], reverse=False)
print(list1)

#对字典的‘值’进行降序排序
list2 = sorted(Chinese.items(), key=lambda x:x[1], reverse=True)
print(list2)

2. 列表字典排序

字典的value可以是列表,也可以是字典 列表的元素可以是列表,也可以是字典 当列表的元素是字典时,称之为列表字典 比如:

student=[
		{"name": "小明", "birth": "2005/06", "code": 101, "语文": 85},   
        {"name": "莉莉", "birth": "2005/08", "code": 102 , "语文": 96},  
        {"name": "大雄", "birth": "2006/02", "code": 103 , "语文": 80}
		 ]
通过列表的内置函数sort()对列表字典进行排序:

student=[
		{"name": "小明", "birth": "2005/06", "code": 101, "语文": 85},   
        {"name": "莉莉", "birth": "2005/08", "code": 102 , "语文": 96},  
        {"name": "大雄", "birth": "2006/02", "code": 103 , "语文": 80}
		 ]

#将语文成绩按升序排序
student.sort(key=lambda x:x.get("语文"))
print(student)

#将语文成绩按降序排序
student.sort(key=lambda x:-x.get("语文"))
print(student)

3. 小结

  • 字典元素排序
  • 列表字典排序
  • 习题

    1. 跳到练习页面