zoukankan      html  css  js  c++  java
  • 内置函数与递归

    1.文件内容如下,标题为:姓名,性别,年纪,薪资

    egon male 18 3000
    alex male 38 30000
    wupeiqi female 28 20000
    yuanhao female 28 10000
    

    要求:
    从文件中取出每一条记录放入列表中,列表的每个元素都是{'name':'egon','sex':'male','age':18,'salary':3000}的形式

    1. 根据1得到的列表,取出薪资最高的人的信息
    2. 根据1得到的列表,取出最年轻的人的信息
    3. 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
    4. 根据1得到的列表,过滤掉名字以a开头的人的信息
    5. 使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 4 7...)
    6. 一个嵌套很多层的列表,如l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]],用递归取出所有的值
    #从文件中取出每一条记录放入列表中,列表的每个元素都是`{'name':'egon','sex':'male','age':18,'salary':3000}`的形式
    
    with open(r'info.txt','r',encoding='utf-8') as fr:
        values_info = fr.read().split("
    ")
    
    keys = ["name", "sex", "age", "salary"]
    values_list = []
    for i in range(len(values_info)):
        res = zip(keys, values_info[i].split())
        values_list.append({k: v for k, v in res})
    
    print(values_list)
    
    # 1.根据1得到的列表,取出薪资最高的人的信息
    print(max(values_list, key=lambda salary:salary["salary"]))
    
    # 2.根据1得到的列表,取出最年轻的人的信息
    print(min(values_list, key=lambda age:age["age"]))
    
    # 3.根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
    def func(item):
        item['name'] = item['name'].capitalize()
        return item
    
    res = list(map(func,values_list))
    print(res)
    
    # 4.根据1得到的列表,过滤掉名字以a开头的人的信息
    def f2(item):
        if item['name'].startswith('a'):
            return False
        else:
            return True
    res = filter(f2,values_list)
    
    print(list(res))
    
    #  5.使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 4 7...)
    x = 0
    y = 1
    lis1 = []
    def f5():
        global x,y
        lis1.append(x)
        x,y = y,x+y
        if len(lis1)==10:
            return
        f5()
    f5()
    
    print(lis1)
    
  • 相关阅读:
    快速排序算法
    冒泡排序
    正则表达式
    博客园 自定义 个性主题优化 这是我迄今为止用过的最好的模板 silence
    Python 中 如何复制图片?如何更改图片存储路径? 在遇无数坑后的最全解答 百试百灵
    作业test
    day69
    day68
    day67
    day67test
  • 原文地址:https://www.cnblogs.com/whkzm/p/11588546.html
Copyright © 2011-2022 走看看