python字典排序

Python list.sort()排序

江枫思渺然 提交于 2020-02-13 17:47:58
List中字典指定元素排序 array = [{"score": "98", "name": "lili", "age": 19}, {"score": "98", "name": "chenming", "age": 18}, {"score": "88", "name": "wangxin", "age": 17}] print("排序前:", array) # 排序前: [{'score': '98', 'name': 'lili', 'age': 19}, {'score': '98', 'name': 'chenming', 'age': 18}, {'score': '88', 'name': 'wangxin', 'age': 17}] array.sort(key=lambda x: x["score"]) print("指定单个元素排序:", array) # 指定单个元素排序: [{'score': '88', 'name': 'wangxin', 'age': 17}, {'score': '98', 'name': 'lili', 'age': 19}, {'score': '98', 'name': 'chenming', 'age': 18}] array.sort(key=lambda x: (x["score"], x["age"])) print(

python3内置函数

泪湿孤枕 提交于 2020-01-27 13:16:54
一. 简介   python内置了一系列的常用函数,以便于我们使用,python英文官方文档详细说明: 点击查看 , 为了方便查看,将内置函数的总结记录下来。 二. 使用说明   以下是Python3版本所有的内置函数: 1. abs()  获取绝对值 1 >>> abs(-10) 2 10 3 >>> abs(10) 4 10 5 >>> abs(0) 6 0 7 >>> a = -10 8 >>> a.__abs__() 9 10 2. all()  接受一个迭代器,如果迭代器的所有元素都为真,那么返回True,否则返回False 1 >>> tmp_1 = ['python',123] 2 >>> all(tmp_1) 3 True 4 >>> tmp_2 = [] 5 >>> all(tmp_2) 6 True 7 >>> tmp_3 = [0] 8 >>> all(tmp_3) 9 False 3. any()  接受一个迭代器,如果迭代器里有一个元素为真,那么返回True,否则返回False 4. ascii()  调用对象的__repr__()方法,获得该方法的返回值. 5. bin(), 6. oct(), 7. hex()   三个函数功能为:将十进制数分别转换为2/8/16进制。 8. bool()  测试一个对象是True还是False. 9. bytes()

python 之 python3内置函数

老子叫甜甜 提交于 2020-01-27 00:01:23
一. 简介   python内置了一系列的常用函数,以便于我们使用,python英文官方文档详细说明: 点击查看 , 为了方便查看,将内置函数的总结记录下来。 二. 使用说明   以下是Python3版本所有的内置函数: 1. abs()  获取绝对值 1 >>> abs(-10) 2 10 3 >>> abs(10) 4 10 5 >>> abs(0) 6 0 7 >>> a = -10 8 >>> a.__abs__() 9 10 2. all()  接受一个迭代器,如果迭代器的所有元素都为真,那么返回True,否则返回False 1 >>> tmp_1 = ['python',123] 2 >>> all(tmp_1) 3 True 4 >>> tmp_2 = [] 5 >>> all(tmp_2) 6 True 7 >>> tmp_3 = [0] 8 >>> all(tmp_3) 9 False 3. any()  接受一个迭代器,如果迭代器里有一个元素为真,那么返回True,否则返回False 4. ascii()  调用对象的__repr__()方法,获得该方法的返回值. 5. bin(), 6. oct(), 7. hex()   三个函数功能为:将十进制数分别转换为2/8/16进制。 8. bool()  测试一个对象是True还是False. 9. bytes()

Python字典根据键值排序

折月煮酒 提交于 2020-01-10 14:15:01
思路: keys(),values()取出键值对,转换为元组列表,对列表排序,再转换成字典 键值对->元组列表->排序列表->排序字典 dic = { "name" : "zs" , "age" : 18 , "city" : "深圳" , "tel" : "1362626627" } ​ print ( dict ( sorted ( zip ( dic . keys ( ) , dic . values ( ) ) ) ) ) 来源: CSDN 作者: Angryshark_128 链接: https://blog.csdn.net/weixin_42078760/article/details/103881795

这26个为什么,让初学者理解Python更简单!

柔情痞子 提交于 2020-01-07 04:13:50
为什么Python使用缩进来分组语句? 为什么简单的算术运算得到奇怪的结果? 为什么浮点计算不准确? 为什么Python字符串是不可变的? 为什么必须在方法定义和调用中显式使用“self”? 为什么不能在表达式中赋值? 为什么Python对某些功能(例如list.index())使用方法来实现,而其他功能(例如len(List))使用函数实现? 为什么 join()是一个字符串方法而不是列表或元组方法? 异常有多快? 为什么Python中没有switch或case语句? 难道不能在解释器中模拟线程,而非得依赖特定于操作系统的线程实现吗? 为什么lambda表达式不能包含语句? 可以将Python编译为机器代码,C或其他语言吗? Python如何管理内存? 为什么CPython不使用更传统的垃圾回收方案? CPython退出时为什么不释放所有内存? 为什么有单独的元组和列表数据类型? 列表是如何在CPython中实现的? 字典是如何在CPython中实现的? 为什么字典key必须是不可变的? 为什么 list.sort() 没有返回排序列表? 如何在Python中指定和实施接口规范? 为什么没有goto? 为什么原始字符串(r-strings)不能以反斜杠结尾? 为什么Python没有属性赋值的“with”语句? 为什么 if/while/def/class语句需要冒号?

Python之函数进阶

一世执手 提交于 2019-12-26 21:37:17
本节内容 上一篇中介绍了Python中函数的定义、函数的调用、函数的参数以及变量的作用域等内容,现在来说下函数的一些高级特性: 递归函数 嵌套函数与闭包 匿名函数 高阶函数 内置函数 总结 一、递归函数 函数是可以被调用的,且一个函数内部可以调用其他函数。如果一个函数在内部调用本身,这个函数就是一个递归函数。函数递归调用的过程与循环相似,而且理论上,所有的递归函数都可以写成循环的方式,但是递归函数的优点是定义简单,逻辑清晰。递归和循环都是一个重复的操作过程,这些重复性的操作必然是需要有一定的规律性的。另外,很明显递归函数也需要一个结束条件,否则就会像死循环一样递归下去,直到由于栈溢出而被终止(这个下面介绍)。 可见,要实现一个递归函数需要确定两个要素: 递归规律 结束条件 1. 实例:计算正整数n的阶乘 n! = 1 * 2 * 3 * ... * n 循环实现 思路有两个: 从1乘到n,需要额外定义一个计数器存放n当前的值 从n乘到1,无需额外定义计数器,直接对n进行减1操作,直到n=0返回1结束 def fact(n): if n == 0: return 1 result = 1 while n >= 1: result *= n n -= 1 return result 递归实现 先来确定递归函数的两个要素: 递归规律:n!=1 * 2 * 3 * ... * n = (n

python:内嵌函数属性和隐藏函数

﹥>﹥吖頭↗ 提交于 2019-12-25 03:27:47
1. nonlocal 在内嵌函数内更改外部函数属性 2.隐藏函数 使用方法 : lambda x:x*2 map(条件,[1,2,3])遍历为列表执行条件 3.隐藏函数判断:lambda x:x “我是判断结果成功的返回值” if x>5 else“我是判断结果失败的返回值” 4.筛选函数filter() temp=filter(用于删选的条件可为数值,用于筛选的被筛内容) 5.排序函数 sorted 排序的意思(排序对象, key=##使用该函数的返回值进行排序,匿名函数lambda 参数名:排序对象"[age]"##, reverse=True从大到小排默认由小到大) 例子:li=sorted(persons字典,key=lambda person:person[字典键]) 6. 来源: CSDN 作者: 流年。 链接: https://blog.csdn.net/weixin_42393424/article/details/103684628

Python实现EXCEL表格的排序功能

♀尐吖头ヾ 提交于 2019-12-24 14:50:16
EXCEL的数值排序功能还是挺强大的,升序、降序,尤其自定义排序,能够对多个字段进行排序工作。 那么,在Python大法中,有没有这样强大的排序功能呢?答案是有的,而且本人觉得Python的排序功能,一点不比EXCEL的差。 同样,我们依然用到的是强大的pandas这个三方库。我们先将numpy和pandas导入进来: 接着构造一个今天要用到的DataFrame,我们用字典的形式来构造。 都是随意构造的,内容别较真。我们先来个简单点的热热身,按照身高的降序来排列一下。 我们用到的是df.sort_values()这个函数。第一个参数为by,传入你要排序的列的标签名即可,后面的ascending参数指示排序方法为升序还是降序,True为升序,False为降序。由于存在相同的身高,pandas会自动的比较两个相同身高所对应的index,按照index的升序来排列。 假如我有这样一个需求:先按照身高降序排序,若存在相同的身高,则再按照武力来降序排序,可以做到吗? 当然可以,我们只需要在by参数里传入列标签组成的列表即可。 通过这个例子我们可以看到,by参数不但可以传入字符串,还可以传入字符串组成的列表,来实现对多个列进行排序。 接着,我的要求再高一点。身高我依然需要降序,但是武力我需要升序,可以吗? 我们直接上结果: 跟by参数类似

python 学生管理系统(文件版)

独自空忆成欢 提交于 2019-12-22 05:29:43
学生管理系统(文件版) 1). 必须使用自定义函数,完成对程序的模块化 2). 学生信息至少包含:姓名、年龄、学号,除此以外可以适当添加 3). 必须完成的功能:添加、删除、修改、查询、退出 import re # 导入正则表达式模块 import os # 导入操作系统模块 filename = "students.txt" # 定义保存学生信息的文件名 def menu ( ) : # 输出菜单 print ( '' ' 学生信息管理系统 =============== 功能菜单 =============== │ 1 录入学生信息 │ │ 2 查找学生信息 │ │ 3 删除学生信息 │ │ 4 修改学生信息 │ │ 5 排序 │ │ 6 统计学生总人数 │ │ 7 显示所有学生信息 │ │ 0 退出系统 ' '' ) def main ( ) : ctrl = True # 标记是否退出系统 while ( ctrl ) : menu ( ) # 显示菜单 option = input ( "请选择:" ) # 选择菜单项 option_str = re.sub ( "\D" , "" , option ) # 提取数字 if option_str in [ '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' ] : option

python排序 sort 和 sorted

依然范特西╮ 提交于 2019-12-11 19:27:20
注意: 1、sorted(iterable[, cmp[, key[, reverse]]]) 作用于任何可迭代对象,返回列表,不改变原对象; 2、s.sort([cmp[, key[, reverse]]]) 只作用与列表,返回 None; 一、字典 from operator import itemgetter # 字典(比较item中位置1中的元素,如果位置1相同在比较位置0中的元素) phonebook = { 'Linda' : '7750' , 'Bob' : '9345' , 'Carol' : '5834' , 'Abc' : '5834' } result = sorted ( phonebook . items ( ) , key = itemgetter ( 1 , 0 ) ) result = sorted ( phonebook . items ( ) , key = lambda item : ( item [ 1 ] , item [ 0 ] ) ) 二、列表中套字典 persons = [ { 'name' : 'Join' , 'age' : 36 } , { 'name' : 'Hoin' , 'age' : 26 } , { 'name' : 'Boin' , 'age' : 28 } , { 'name' : 'Boin' , 'age' :