day12 max min zip 用法
max min ,查看最大值,最小值
基础玩法
l = [1,2,3,4,5]
print(max(l))
print(min(l))
高端玩法
默认字典的取值是key的比较
age_dic={'alex_age':18,'wupei_age':20,'zsc_age':100,'lhf_age':30}
print(max(age_dic.values())) # 100 我可以得到最大值的值
print(max(age_dic)) # zsc_age 我可以得到最大值的键
倘若我想要得到值最大的那个键值对,默认只能比较键,或者添加参数比较值,但是都无法组合起来输出,需要用拉链
age_dic={'alex_age':18,'wupei_age':20,'zsc_age':100,'lhf_age':30}
a = zip(age_dic.values(),age_dic.keys()) # 组成新的数据类型
print(a) # <zip object at 0x000000000065BF88> zip后的本质为一个对象
# print(list(a)) # [(18, 'alex_age'), (20, 'wupei_age'), (100, 'zsc_age'), (30, 'lhf_age')]
#通过list方法可以取出其数据
# # print(list(a)) # [] 本质是一个迭代器,被使用一次就清空了
# for i in a : # 能被list,都说是迭代器了,自然就可迭代
# print(i)
print(list(max(a))) # [100, 'zsc_age'] 这样就可以取出来整个键值对了
key关键字
people=[
{'name':'alex','age':1000},
{'name':'wupei','age':10000},
{'name':'yuanhao','age':9000},
{'name':'linhaifeng','age':18},
]
# max内也有key关键字,关键字指定要取出来进行比较的内容
print('谁是最大年纪的?',max(people,key=lambda dic:dic['age']))
# 通常的实现取最大年龄的方式
people=[
{'name':'alex','age':1000},
{'name':'wupei','age':10000},
{'name':'yuanhao','age':9000},
{'name':'linhaifeng','age':18},
]
ret=[]
for item in people:
ret.append(item['age'])
print(ret)
print(max(ret))
max 的特殊注意点
l=[(5,'a'),(1,'b'),(3,'c'),(4,'d'),]
print('--->',max(l)) # (5, 'a') 内部有多元素的时候也是按照一个一个来比较
l1=['a10','b12','c10',100] #不同类型之间不能进行比较
print('--->',list(max(l1))) # TypeError: '>' not supported between instances of 'int' and 'str'
l2=['a18','a2','a11'] # 只能相同类型进行比较,且一位一位的比较
print('--->',list(max(l2))) # ---> ['a', '2']
总结:
只能比较可迭代的序列,因此字典是不可比较的
一位一位的比,比出来就不必后面的了。和长度无关的
不同数据类型之间无法比较
ps:
拉链,两个序列(元祖字符串字典列表都可以)一一对应组合起来
print(list(zip(("","",""),("a","b","c"))))
print(list(zip(("","","",""),("a","b","c"))))
print(list(zip(("","",""),("a","b","c","d"))))
# [('1', 'a'), ('2', 'b'), ('3', 'c')]
# [('1', 'a'), ('2', 'b'), ('3', 'c')]
# [('1', 'a'), ('2', 'b'), ('3', 'c')]
p = {"name":"yangtuo","age":18,"gender":"boy"}
print(list(zip(p.keys(),p.values())))
print(list(zip(p.keys())))
print(list(zip(p.values())))
# [('name', 'yangtuo'), ('age', 18), ('gender', 'boy')]
# [('name',), ('age',), ('gender',)]
# [('yangtuo',), (18,), ('boy',)]
day12 max min zip 用法的更多相关文章
- max,min,Zip函数(十一)
zip函数,拉链,传两个有序的参数,将他们一一对应为元祖形式 max,min比较默认比较一个元素,处理的是可迭代对象,相当于for循环取出每个元素进行比较,注意:不同类型之间不可比较 #!/usr/b ...
- mysql count max min 语句用法
count 用法 求总条数 $sql="select count(*) as total from e_user"; $query = mysql_query($sql, $lin ...
- 列表推导式、生成器表达式以及zip()max()max()/min()sum()sort()map()filter()的用法
列表推导式: 基本格式: variable = [out_exp_res for out_exp in input_list if out_exp == 2] #out_exp_res: 列表生成元素 ...
- python奇技淫巧——max/min函数的用法
本文以max()为例,对min/max内建函数进行说明 源码 def max(*args, key=None): # known special case of max ""&qu ...
- 从集合中查找最值得方法——max(),min(),nlargest(),nsmallest()
从集合中查找最值得方法有很多,常用的方法有max(),min(),nlargest(),nsmallest()等. 一.max()和min() 1.1 入门用法 直接使用max(),min(),返回可 ...
- SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum avg() 函数 定义和用法 AVG 函数返回数值列的平均值.NULL ...
- jquery.validate.min.js 用法方法示例
页面html 代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...
- 6.组函数(avg(),sum(),max(),min(),count())、多行函数,分组数据(group by,求各部门的平均工资),分组过滤(having和where),sql优化
1组函数 avg(),sum(),max(),min(),count()案例: selectavg(sal),sum(sal),max(sal),min(sal),count(sal) from ...
- group by与avg(),max(),min(),sum()函数的关系
数据库表: create table pay_report( rdate varchar(8), --日期 region_id varchar(4), --地市 ...
随机推荐
- python运算符基础实例
# encoding=utf-8 #两个数字相加 sumNumber=1+2 print(sumNumber) #输出结果:3 #两个字符串相加 sumString="Nice work&q ...
- [Spark][python]以DataFrame方式打开Json文件的例子
[Spark][python]以DataFrame方式打开Json文件的例子: [training@localhost ~]$ cat people.json{"name":&qu ...
- 汇编 STD和CLD指令
一.用纯汇编封装函数strcmpW 1.用repnz scasw计算字串长度 2.用repz cmpsw比较字串内容 3.把比较的结果存放在EAX里边返回 __declspec(naked) int ...
- [JSOI2016]病毒感染[dp]
题意 有 \(n\) 个村庄按标号排列,每个村庄有一个死亡速度 \(a_i\) 表示每天死 \(a_i\) 人(除非你治好这个村庄). 你从 1 号村庄出发,每天可以选择向相邻的村庄进发或者治愈 ...
- Spring Boot 2.0 版的开源项目云收藏来了!
给大家聊一聊云收藏从 Spring Boot 1.0 升级到 2.0 所踩的坑 先给大家晒一下云收藏的几个数据,作为一个 Spring Boot 的开源项目(https://github.com/cl ...
- Ubuntu轻松编译openJDK
花了三天在windows上搞openJDK,对bash本来就不熟,加上各种莫名依赖和脚本里的bug,身心俱疲.最后make all的时候产生一个莫名其妙的错误说什么有warning且-Werror置为 ...
- OpenTracing:开放式分布式追踪规范
前言 想实现一个简单的追踪系统似乎是容易的,需要必要的调用链id,时间戳等:想实现一款易用不侵入代码的追踪系统就很麻烦了,需要接触CLR和IL相关知识:即使你费劲心力做出了那些,如果性能不够好,也没有 ...
- Linux内核分析-系统中断在内核中的实现
分析system_call中断处理过程 在MenuOS中添加上周所运用到的系统调用 即在Linuxkernel/menu/test.c文件中,添加代码如下: int Mkdir() { const c ...
- Linux内核分析——期中总结
期中总结 一.MOOC课程 (一)计算机是如何工作的 1.冯诺依曼体系结构的核心思想是存储程序计算机. 2.CPU在实际取指令时根据cs:eip来准确定位一个指令. 3.寄存器模式,以%开头的寄存器标 ...
- Linux内核设计期中总结
Linux内核设计期中总结 ● 知识点 一.计算机是如何工作的 计算机是按照冯·诺依曼存储程序的原理. 在执行程序时须先将要执行的相关程序和数据放入内存储器中,在执行程序时CPU根据当前程序指针寄存器 ...