python之路--day13---函数--三元表达式,递归,匿名函数,内置函数-----练习
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}的形式
2 根据1得到的列表,取出薪资最高的人的信息
3 根据1得到的列表,取出最年轻的人的信息
4 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
5 根据1得到的列表,过滤掉名字以a开头的人的信息
6 使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 4 7...)
7 一个嵌套很多层的列表,如l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]],用递归取出所有的值
1 data = [] 2 with open('ceshi.txt','r',encoding='utf-8') as f: 3 for line in f: 4 i= line.strip('\n').split(' ') 5 dic = { 6 'name':i[0], 7 'sex':i[1], 8 'age':int(i[2]), 9 'salary':int(i[3]) 10 } 11 data.append(dic) 12 13 # [{'name': 'egon', 'sex': 'male', 'age': 18, 'salary': 3000}, \ 14 # {'name': 'alex', 'sex': 'male', 'age': 38, 'salary': 30000}, \ 15 # {'name': 'wupeiqi', 'sex': 'female', 'age': 28, 'salary': 20000},\ 16 # {'name': 'yuanhao', 'sex': 'female', 'age': 28, 'salary': 10000}] 17 18 res=max(data,key=lambda x: x['salary']) 19 res1=min(data,key=lambda x: x['age']) 20 21 res2=map(lambda x: {'name':x['name'].capitalize(), 22 'sex': x['sex'], 23 'age': x['age'], 24 'salary': x['salary']}, 25 data) 26 27 28 res3 = filter(lambda x:not x['name'].startswith('a'),data) 29 30 31 #非递归 32 def fib(n): 33 a,b=0,1 34 while a < n: 35 print(a,end=' ') 36 a,b=b,a+b 37 print() 38 39 fib(10) 40 #递归 41 def fib(a,b,stop): 42 if a > stop: 43 return 44 print(a,end=' ') 45 fib(b,a+b,stop) 46 47 fib(0,1,10)
l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]] def list1(x): for item in x: if not type(item) == list: print(item) else: list1(item)