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("file.txt","r",encoding="utf-8") as f: l=[] for line in f: name,sex,age,salary=line.strip(" ").split() l.append({"name":name,"sex":sex,"age":age,"salary":salary}) print(l)
2 根据1得到的列表,取出所有人的薪资之和
with open("file.txt","r",encoding="utf-8") as f: l=[] for line in f: name,sex,age,salary=line.strip(" ").split() l.append({"name":name,"sex":sex,"age":age,"salary":salary}) sum_salary=sum(int(i["salary"]) for i in l) print(sum_salary)
3 根据1得到的列表,取出所有的男人的名字
with open("file.txt","r",encoding="utf-8") as f: l=[] for line in f: name,sex,age,salary=line.strip(" ").split() l.append({"name":name,"sex":sex,"age":age,"salary":salary}) new_l=[i["name"] for i in l if i["sex"]=="male"] print(new_l)
4 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
with open("file.txt","r",encoding="utf-8") as f: l=[] for line in f: name,sex,age,salary=line.strip(" ").split() l.append({"name":name,"sex":sex,"age":age,"salary":salary}) name_l=[i["name"].capitalize() for i in l] print(name_l)
5 根据1得到的列表,过滤掉名字以a开头的人的信息
with open("file.txt","r",encoding="utf-8") as f: l=[] for line in f: name,sex,age,salary=line.strip(" ").split() l.append({"name":name,"sex":sex,"age":age,"salary":salary}) name_l=[i["name"] for i in l if not i["name"].startswith("a")] print(name_l)
6 使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 4 7...)
def p_fibonacci(n,a=0,b=1): while n > 0: print(a,end=" ") a,b=b,a+b n-=1 return p_fibonacci(n,a,b) p_fibonacci(6)
7 一个嵌套很多层的列表,如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 p(x): for i in x: if type(i) is list: p(i) else: print(i,end=" ") p(l)