• Python3 函数小练习


    函数小练习

    第一题

    现有文件info.txt, 其内容如下:

    alpha male 18 1000
    bravo male 28 2000
    charlie female 38 3000
    delta female 48 4000

    1. 从文件中取出每一条记录放入列表中,列表的每个元素都是{'name':'alpha','gender':'male','age':18,'salary':1000}的形式

    2. 根据1得到的列表,取出薪资最高的人的信息

    3. 根据1得到的列表,取出最年轻的人的信息

    4. 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式

    5. 根据1得到的列表,过滤掉名字以a开头的人的信息

    # 1
    info_list = []
    with open('info.txt', 'rt', encoding='utf-8') as f:
            for line in f:
            info_split_list = (line.strip().split(' '))
            name, gender, age, salary = info_split_list
            info_dict = {'name': name, 'gender': gender, 'age': age, 'salary': salary}
            info_list.append(info_dict)
        
        
    print(info_list)
    
    # 2
    max_salary_info = max(info_list, key=lambda dic: dic['salary'])
    print(max_salary_info)
    
    # 3
    min_age_info = min(info_list, key=lambda dic: dic['age'])
    print(min_age_info)
    
    # 4
    new_info_list = map(lambda dic: {'name': dic['name'].capitalize(),
                                     'gender': dic['gender'],
                                     'age': dic['age'],
                                     'salary': dic['salary']}, info_list)
    print(list(new_info_list))
    
    # 5
    res = filter(lambda dic: dic['name'][0] != 'a', info_list)
    print(list(res))
    
    

    第二题

    使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 4 7...)

    num1 = 0
    num2 = 1
    num = 0
    
    
    def fibo(end):
        '''斐波那契数列'''
        global num1, num2, num
        print(num)
        num1 = num2
        num2 = num
        num = num1 + num2
        if num > end:
            return
        func(end)
    
    
    func(20)
    

    第三题

    一个嵌套很多层的列表,如l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]],用递归取出所有的值

    def get(lis):
        for i in lis:
            if type(i) == list:
                get(i)
            else:
                print(i)
    
    get(l)
    
  • 相关阅读:
    【Django总结】详解Django admin高级用法
    【Django总结】Django model中的class Meta详解
    【Django总结】django中的objects.get和objects.filter方法的区别
    【Django总结】Django的时间字段DateTimeField
    【Django总结】Django数据模型的一些字段解析
    codechef Chef and Chefcoin
    codechef Hikaru, Touya and Waya
    [CmdOI2019]口头禅
    Codeforces Round #664 (Div. 1)(E未做)
    AtCoder Grand Contest 034
  • 原文地址:https://www.cnblogs.com/bigb/p/11587591.html
Copyright © 2020-2023  润新知