zoukankan      html  css  js  c++  java
  • 找极值和当函数默认值是可变值时

    找最大值或者最小值

    # 接收n个参数. 返回最大值和最小值(字典)
     def func(*args):
         m = args[0] # 假设第0项就是最大值
         mi = args[0]
         for el in args:
             if el > m:
                 m = el # 当前这个元素比假设的那个大. 记录当前这个比较大的数
             if el < mi:
                 mi = el
         return {"最大值":m, "最小值":mi}
     print(func(5,7,12,1,46,87,3))
    
    
    #利用max min 函数直接求最大值最小值    # sum可以直接求和
     def func(*args):
         dic={}
         dic['max']=max(*args) #此处*为打散元组
         dic['min']=min(*args) #此处*为打散元组
         return dic
     sum=(2,5,6,8,4,1)
     print(func(sum))
    

      

    函数默认参数是可变值时

     def extendList(val, list=[]):
         list.append(val)
         return list
     list1 = extendList(10)# lis_a=[10]
     list2 = extendList(123, []) #lis_b=[123]
     list3 = extendList('a') #lis_a=[10,'a']
    
     print('list1=%s' % list1)   #输出lis_a
     print('list2=%s' % list2) #输出lis_b
     print('list3=%s' % list3) #输出lis_a
      # 默认参数是可变值时 在运行过程中会变化 所有使用过默认值的返回值都会变化
      #默认参数是可变值时,如果为其赋值,则会产生一个新的变量
    

      

    整合字典里的数据

    # 1.判断是否在result里面存在了这个人, 如果存在. 把hobby_list添加一个hobby
    # 2.不存在. 创建一个新字典
    
    #def fn(user_list):
    #     lis1=[]
    #     for el in user_list:
    #        lis1.append(list(el.values()))
    #     lis2=[]
    #     for i in lis1:
    #         a=list(i)
    #         lis2.append(a[0])
    #     lis3=list(set(lis2))
    #     lis=[]
    #     dic={'name':'','hobby_list':[]}
    #     for i in range(len(lis3)):
    #         dic = {'name': '', 'hobby_list': []}
    #         dic['name']=lis3[i]
    #         for info in lis1:
    #             if info[0]==lis3[i]:
    #                 dic['hobby_list'].append(info[1])
    #         lis.append(dic)
    #     return lis
    # user_list=[
    #     {'name':'alex','hobby':'抽烟'},
    #     {'name':'alex','hobby':'喝酒'},
    #     {'name':'wusir','hobby':'蛤蟆皮'},
    #     {'name':'wusir','hobby':'钓鱼'},
    #     {'name':'kangkang','hobby':'睡觉'}
    # ]
    # print(fn(user_list))  #自己写的一堆乱码,但能实现
    
    user_list=[
        {'name':'alex','hobby':'抽烟'},
        {'name':'alex','hobby':'喝酒'},
        {'name':'wusir','hobby':'蛤蟆皮'},
        {'name':'wusir','hobby':'钓鱼'},
        {'name':'kangkang','hobby':'睡觉'}
    ]
    result=[]
    for user in user_list:
        for new_user in result:
            if new_user['name']==user['name']:
                new_user['hobby_list'].append(user['hobby'])
                break
        else:
            dic={}
            dic['name']=user['name']
            dic['hobby_list']=[user['hobby']]
            result.append(dic)
    print(result)
    

      

    
    
    
  • 相关阅读:
    泛型编程 --迭代器
    cpp输入输出加速
    算法训练 加法运算(指针的一个测试)
    蓝桥杯-基础练习-字母图形
    蓝桥杯-基础练习-特殊回文数
    win10下稍微美观下Git
    mysql8.0以上版本注册驱动并建立数据库的连接公共代码
    idea使用的一些问题解决记录
    单链表逆转(递归指针实现)
    increment/decrement/dereference操作符
  • 原文地址:https://www.cnblogs.com/luxiangyu111/p/9325350.html
Copyright © 2011-2022 走看看