- 文件内容如下,标题为:姓名,性别,年纪,薪资
egon male 18 3000
alex male 38 30000
wupeiqi female 28 20000
yuanhao female 28 10000
要求:
从文件中取出每一条记录放入列表中,列表的每个元素都是{'name':'egon','sex':'male','age':18,'salary':3000}
的形式
usename_list=[]
with open('use_info.txt','r',encoding='utf8')as fr:
for use_info in fr:
name,sex,age,salary=use_info.strip().split()
usename_list.append({'name':name,'sex':sex,'age':age,'salary':salary})
print(usename_list)
运行结果:
[{'name': 'egon', 'sex': 'male', 'age': '18', 'salary': '3000'}, {'name': 'alex', 'sex': 'male', 'age': '38', 'salary': '30000'}, {'name': 'wupeiqi', 'sex': 'female', 'age': '28', 'salary': '20000'}, {'name': 'yuanhao', 'sex': 'female', 'age': '28', 'salary': '10000'}]
根据1得到的列表,取出薪资最高的人的信息
#有名函数实现 def func(i): return i['salary'] res=max(usename_list,key=func) print(res) #匿名函数实现 res=max(usename_list,key=lambda i:i['salary']) print(res) 运行结果: {'name': 'alex', 'sex': 'male', 'age': '38', 'salary': '30000'}
根据1得到的列表,取出最年轻的人的信息
res=min(usename_list,key=lambda i:i['age']) print(res) 运行结果: {'name': 'egon', 'sex': 'male', 'age': '18', 'salary': '3000'}
根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
#有名函数实现: def func(i): return i['name'].capitalize() #首字母大写 res=map(func,usename_list) print(list(res)) #匿名函数实现 res=map(lambda i:i['name'].capitalize(),usename_list) print(list(res)) 运行结果: ['Egon', 'Alex', 'Wupeiqi', 'Yuanhao']
根据1得到的列表,过滤掉名字以a开头的人的信息
res=filter(lambda i:not i['name'].startswith('a'),usename_list) print(list(res)) 运行结果: [{'name': 'egon', 'sex': 'male', 'age': '18', 'salary': '3000'}, {'name': 'wupeiqi', 'sex': 'female', 'age': '28', 'salary': '20000'}, {'name': 'yuanhao', 'sex': 'female', 'age': '28', 'salary': '10000'}]
使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 4 7...)
def fib(a,b,stop): if a>stop: return print(a,end=' ') fib(b,a+b,stop) fib(0,1,10) 运行结果: 0 1 1 2 3 5 8
一个嵌套很多层的列表,如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 tell(l): for i in l: if type(i) is list: tell(i) else: print(i) tell(l) 运行结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15