• 函数(三)


    函数(三)

    递归

    递归的经典应用

    二分法

    my_list = list(range(10000))
    
    
    def serach_num(the_list, the_num):
        if not the_list:
            print('不在这个区间内')
            return False
        flag_length = len(the_list) // 2
        if the_num > the_list[flag_length]:
            serach_num(the_list[flag_length + 1:], the_num)
        elif the_num < the_list[flag_length]:
            serach_num(the_list[:flag_length], the_num)
        else:
            print('找到了')
            return True
    
    
    serach_num(my_list, 100)
    print(100 in my_list)
    
    

    匿名函数

    lambda表达式

    # 要求:
    # 从文件中取出每一条记录放入列表中,
    # 列表的每个元素都是{'name':'nick','sex':'male','age':18,'salary':3000}的形式
    with open('a.txt', 'r', encoding='utf8') as fr:
        my_list = list()
        for line in fr.readlines():
            temp_list = line.split()
            temp_dict = dict()
            temp_dict['name'] = temp_list[0]
            temp_dict['sex'] = temp_list[1]
            temp_dict['age'] = int(temp_list[2])
            temp_dict['salary'] = int(temp_list[3])
            my_list.append(temp_dict)
        del temp_dict
        del temp_list
        print(my_list)
    
    # 根据1得到的字典,取出薪资最高的人的信息
    max_salary = 0
    max_salary_info = dict()
    for i in my_list:
        if i['salary'] > max_salary:
            max_salary = i['salary']
            max_salary_info = i
    print(max_salary_info)
    
    print(max(my_list, key=lambda dic: dic['salary']))
    
    # def search_max(x):
    #     # x = 'salary'
    #     return my_list[0][x]
    #
    #
    # max_salary = max(my_list, key=search_max('salary'))
    # print(max_salary)
    # 根据1得到的字典,取出最年轻的人的信息
    print(min(my_list, key=lambda x: x['age']))
    # 根据1得到的字典,将每个人的信息中的名字映射成首字母大写的形式
    my_new_list = map(lambda x: {'name': x['name'].capitalize(),
                                 'sex': x['sex'],
                                 'age': x['age'],
                                 'salary': x['salary']}, my_list)
    print(list(my_new_list))
    

    内置函数

    Python已经帮你写好的函数,拿来就可以用

    面向过程编程

    优点:复杂的问题简单化

    缺点:扩展性差

    如同工厂里的流水线一般

  • 相关阅读:
    使用Putty和Xshell远程登录之密钥认证
    保护SSH的三把锁
    C++11_shared_ptr
    C++11_ tuple
    C++11_ 右值引用
    C++11_ Variadic Templates
    C++11_ Lambda
    C++11_新语法
    MoreEffectiveC++Item35 条款27: 要求或禁止对象产生于heap中
    MoreEffectiveC++Item35 条款26: 限制某个class所能产生的对象个数
  • 原文地址:https://www.cnblogs.com/heroknot/p/10976131.html
Copyright © 2020-2023  润新知