• day12 max min zip 用法


    max min ,查看最大值,最小值
      基础玩法
    1 l = [1,2,3,4,5]
    2 print(max(l))
    3 print(min(l))

    高端玩法
      
      默认字典的取值是key的比较
    1 age_dic={'alex_age':18,'wupei_age':20,'zsc_age':100,'lhf_age':30}
    2 print(max(age_dic.values()))      # 100   我可以得到最大值的值
    3 print(max(age_dic))                # zsc_age 我可以得到最大值的键
      倘若我想要得到值最大的那个键值对,默认只能比较键,或者添加参数比较值,但是都无法组合起来输出,需要用拉链
    1 age_dic={'alex_age':18,'wupei_age':20,'zsc_age':100,'lhf_age':30}
    2 a = zip(age_dic.values(),age_dic.keys())    # 组成新的数据类型
    3 print(a)                                    # <zip object at 0x000000000065BF88> zip后的本质为一个对象
    4 # print(list(a))                            # [(18, 'alex_age'), (20, 'wupei_age'), (100, 'zsc_age'), (30, 'lhf_age')]
    5                                             #通过list方法可以取出其数据
    6 # # print(list(a))                          # [] 本质是一个迭代器,被使用一次就清空了
    7 # for i in a :                              # 能被list,都说是迭代器了,自然就可迭代
    8 #     print(i)
    9 print(list(max(a)))                         # [100, 'zsc_age'] 这样就可以取出来整个键值对了
    key关键字
    1 people=[
    2     {'name':'alex','age':1000},
    3     {'name':'wupei','age':10000},
    4     {'name':'yuanhao','age':9000},
    5     {'name':'linhaifeng','age':18},
    6 ]
    7 # max内也有key关键字,关键字指定要取出来进行比较的内容
    8 print('谁是最大年纪的?',max(people,key=lambda dic:dic['age']))
     1 # 通常的实现取最大年龄的方式
     2 people=[
     3     {'name':'alex','age':1000},
     4     {'name':'wupei','age':10000},
     5     {'name':'yuanhao','age':9000},
     6     {'name':'linhaifeng','age':18},
     7 ]
     8 ret=[]
     9 for item in people:
    10     ret.append(item['age'])
    11 print(ret)
    12 print(max(ret))

    max 的特殊注意点
    1 l=[(5,'a'),(1,'b'),(3,'c'),(4,'d'),]
    2 print('--->',max(l))              # (5, 'a')  内部有多元素的时候也是按照一个一个来比较
    3 l1=['a10','b12','c10',100]        #不同类型之间不能进行比较
    4 print('--->',list(max(l1)))        # TypeError: '>' not supported between instances of 'int' and 'str'
    5 l2=['a18','a2','a11']             # 只能相同类型进行比较,且一位一位的比较
    6 print('--->',list(max(l2)))        # ---> ['a', '2']
    
    
    总结:
    只能比较可迭代的序列,因此字典是不可比较的
    一位一位的比,比出来就不必后面的了。和长度无关的
    不同数据类型之间无法比较

    ps:
    拉链,两个序列(元祖字符串字典列表都可以)一一对应组合起来
     1 print(list(zip(("1","2","3"),("a","b","c"))))
     2 print(list(zip(("1","2","3","4"),("a","b","c"))))
     3 print(list(zip(("1","2","3"),("a","b","c","d"))))
     4 # [('1', 'a'), ('2', 'b'), ('3', 'c')]
     5 # [('1', 'a'), ('2', 'b'), ('3', 'c')]
     6 # [('1', 'a'), ('2', 'b'), ('3', 'c')]
     7 
     8 p = {"name":"yangtuo","age":18,"gender":"boy"}
     9 print(list(zip(p.keys(),p.values())))
    10 print(list(zip(p.keys())))
    11 print(list(zip(p.values())))
    12 # [('name', 'yangtuo'), ('age', 18), ('gender', 'boy')]
    13 # [('name',), ('age',), ('gender',)]
    14 # [('yangtuo',), (18,), ('boy',)]

  • 相关阅读:
    JAVA-基础-网络通信协议
    JAVA-基础-线程安全
    JAVA-基础-多线程
    IDEA安装破解JFrameDesigner
    windows IIS安装memadmin
    exe应用程序安装为windows服务
    远程管理virtual box的几种方式
    手动修改注册表更改MAC地址
    在火狐插件中使用socket编程与java进行通信
    定制自己的firefox插件并在selenium中使用
  • 原文地址:https://www.cnblogs.com/shijieli/p/9699971.html
Copyright © 2020-2023  润新知