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

with open('test.txt', 'r', encoding='utf-8') as fr:
    res = (line.split() for line in fr)

    info_list = [{'name': name, 'sex': sex, 'age': age, 'salary': salary} for name, sex, age, salary in res]
print(info_list)
  1. 根据1得到的列表,取出薪资最高的人的信息
res = max(info_list, key=lambda dic: dic['salary'])
print(res)
  1. 根据1得到的列表,取出最年轻的人的信息
res = min(info_list, key=lambda dic: dic['age'])
print(res)
  1. 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
res = map(lambda dic: dic['name'].title(), info_list)
print(list(res))
  1. 根据1得到的列表,过滤掉名字以a开头的人的信息
res = filter(lambda dic: not dic['name'].startswith('a'),info_list)
print(list(res))
  1. 使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 4 7...)
def fi(n):
    if n == 0 or n ==1:
        return n
    if n == 2:
        return 1

    return fi(n-1) + fi(n-2)

res = fi(2)
for i in range(10):
    print(fi(i))
  1. 一个嵌套很多层的列表,如l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]],用递归取出所有的值
l = [1, 2, [3, [4, 5, 6, [7, 8, [9, 10, [11, 12, 13, [14, 15]]]]]]]


def func(lt):
    for i in lt:
        if type(i) is list :
            func(i)

        else:
            print(i)

func(l)
原文地址:https://www.cnblogs.com/setcreed/p/11587076.html