• 25作页


    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}的形式

    data = '''egon male 18 3000
    alex male 38 30000
    wupeiqi female 28 20000
    yuanhao female 28 10000
    '''
    with open('user_info.txt','w',encoding='utf-8') as fw:
        fw.write(data)
        fw.flush()
    
    lt = []
    li = ['name','sex','age','salary']
    with open('user_info.txt','r',encoding='utf-8') as fr:
        for i in fr:
            lis = i.strip().split() #切割 --》列表
            # print(i)
            res = zip(li,lis) #存储
            dic = {k:v for k,v in res}
            lt.append(dic)
    print(lt)
    
    
    1. 根据1得到的列表,取出薪资最高的人的信息
    res1 = max(lt,key=lambda k:k["salary"])
    print(res1)
        
    
    1. 根据1得到的列表,取出最年轻的人的信息
    res2 = min(lt,key=lambda k1:k1['age'])
    print(res2)
    
    1. 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
    res3=map(lambda ma:ma['name'].title(),lt)
    map_lis=list(res3)
    count = 0
    for i in lt:
        i['name']=map_lis[count]
        count+=1
    print(lt)
    
    1. 根据1得到的列表,过滤掉名字以a开头的人的信息
    filter_res = filter(lambda vb:not vb['name'].startswith('a'),lt)
    print(list(filter_res))
    
    1. 使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 4 7...)
    def fib(n):
     """输出斐波那契数列"""
     if n <= 1:
         return n
     else:
         return(fib(n-1) + fib(n-2))
    fib(n)
    
    1. 一个嵌套很多层的列表,如l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]],用递归取出所有的值
  • 相关阅读:
    luogu4781
    luogu 4933
    luogu p1726
    bzoj2238
    luogu 1462 通往奥格瑞玛的道路
    noip.ac 3276 矩阵
    luogu1144
    noip.ac 3248
    奶牛比赛
    小P的Civilization V
  • 原文地址:https://www.cnblogs.com/shaozheng/p/11587070.html
Copyright © 2020-2023  润新知