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)
    

      

    
    
    
  • 相关阅读:
    寻找研究基于NS2研究覆盖网络的小伙伴:)
    ubuntu14.04 键盘错位小问题
    关于NS2安装的若干问题
    关于ubuntu下词典安装
    与NS2一起度过第一个圣诞夜!(NS2入门学习参考资料)
    【转】影响CSS渲染速度的十条编码方法与建议
    类型初始值设定项引发异常
    【转】实用的CSS Hack
    【转】CSS技巧:五个方面促进你写出更加专业的CSS代码
    IIS6.0架构
  • 原文地址:https://www.cnblogs.com/luxiangyu111/p/9325350.html
Copyright © 2011-2022 走看看