• day14作业


    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开头的人的信息
    file_name = "data.txt"
    def extract_data(file_name):
        infor_lst = []
        keys = ("name", "sex", "age", "salary")
        with open(file_name, "r") as f:
            for line in f:
                values = line.strip().split()
                infor_lst.append(dict(zip(keys, values)))
        return infor_lst
    
    infor_lst = extract_data(file_name)
    print("用户字典列表:")
    print(infor_lst)
    print("薪资最高:")
    print(max(infor_lst, key=lambda user:user["salary"]))
    print("最年轻:")
    print(min(infor_lst, key=lambda user:user["salary"]))
    print("名字首字母大写:")
    for user in infor_lst:
        user["name"]= user["name"].title()
    print(infor_lst)
    print("过滤掉名字以a开头的用户:")
    infor_lst = extract_data(file_name)
    lst = list(filter(lambda user:not user['name'].startswith("a"), infor_lst))
    print(lst)
    

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

    print("方法1:生成器")
    def feb():
        i = 0
        i_plus_1 = 1
        yield i
        yield i_plus_1
        while True:
            new = i + i_plus_1
            yield new
            i = i_plus_1
            i_plus_1 = new
    
    feb_num = feb()
    for i in range(10):
        print(next(feb_num))
    
    print("方法2:递归")
    
    def feb(max_num, a=0, b=1):
        if a == 0 and b == 1:
            print(a)
            print(b)
        sum_num = a + b
        if sum_num > max_num:
            return
        print(sum_num)
        feb(max_num, b, sum_num)
    feb(40)
    
    

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

    print("打印嵌套列表中的值:")
    lst =[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]]
    def extract(lst):
        for i in lst:
            if type(i) == list:
                extract(i)
            else:
                print(i)
    
    extract(lst)
    
    print("保存值到列表")
    def extract(lst):
        num = []
        for i in lst:
            if type(i) == list:
                num.extend(extract(i))
            else:
                num.append(i)
        return num
    nums = extract(lst)
    print(nums)
    
  • 相关阅读:
    『高性能模型』卷积复杂度以及Inception系列
    『高性能模型』轻量级网络梳理
    『计算机视觉』YOLO系列总结
    利用Azure Functions和k8s构建Serverless计算平台
    我如何通过K8S开发认证(CKAD)考试
    对Windows桌面应用程序进行UI自动化测试
    Service Fabric是什么?
    如何把遗留的Java应用托管在Service Fabric中
    如何在本地数据中心安装Service Fabric for Windows集群
    当TFS/VSTS遇上Power BI
  • 原文地址:https://www.cnblogs.com/YajunRan/p/11586832.html
Copyright © 2020-2023  润新知