zoukankan      html  css  js  c++  java
  • 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)
    
  • 相关阅读:
    Linux 模块管理
    python 调试方法
    LFS(Linux From Scratch)学习
    Vim完全教程
    OpenSSL基础知识
    关于jiffies回绕以及time_after,time_before
    十分简便的APK反编译(Mac 版本号 具体解释)
    亚马逊是怎样颠覆商业软件高昂价格这座”柏林墙”的
    Android自己定义控件
    Android基础新手教程——4.1.1 Activity初学乍练
  • 原文地址:https://www.cnblogs.com/YajunRan/p/11586832.html
Copyright © 2011-2022 走看看