day14作业
作业
- 文件内容如下,标题为:姓名,性别,年纪,薪资
egon male 18 3000
alex male 38 30000
wupeiqi female 28 20000
yuanhao female 28 10000
要求:
从文件中取出每一条记录放入列表中,列表的每个元素都是{'name':'egon','sex':'male','age':18,'salary':3000}的形式
-
根据1得到的列表,取出薪资最高的人的信息
-
根据1得到的列表,取出最年轻的人的信息
-
根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
-
根据1得到的列表,过滤掉名字以a开头的人的信息
-
使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 4 7...)
-
一个嵌套很多层的列表,如l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]],用递归取出所有的值
#
file = "user_info.txt"
user_list = []
with open(file,"r") as fr:
for i in fr:
user_dict = {}
name, sex, age, salary = i.strip().split()
user_dict["name"] = name
user_dict["sex"] = sex
user_dict["age"] = age
user_dict["salary"] = salary
user_list.append(user_dict)
print(user_list)
# 根据1得到的列表,取出薪资最高的人的信息
def max1(item):
return item["salary"]
print(max(user_list,key=max1))
# 匿名函数实现
print(max(user_list,key=lambda x:x["salary"]))
# 根据1得到的列表,取出最年轻的人的信息
def min1(item):
return item["age"]
print(min(user_list,key=min1))
# 匿名函数实现
print(min(user_list,key=lambda x:x["age"]))
# 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
def upper1(item):
return item["name"].capitalize() # capitalize函数可以将字符串首字母变大写,其余字母变小写
# title 函数 标题化,也可以将首字母大写,其余字母小写
res = map(upper1,user_list)
print(list(res))
res = map(lambda x:x["name"].capitalize(),user_list)
print(list(res))
# 根据1得到的列表,过滤掉名字以a开头的人的信息
def filter1(item):
for i in item:
return item["name"].startswith("a")
res = filter(filter1,user_list)
print(list(res))
# 匿名函数实现
res = filter(lambda x:x["name"].startswith("a"),user_list)
print(list(res))
# 使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 5 8 ...)
def f1(a,b,n):
if a > n:
return
while a < n:
print(a, end=" ")
a,b = b,a+b
f1(a,b,n)
f1(0,1,10)
# 一个嵌套很多层的列表,如l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]],用递归取出所有的值
# 首先 先观察。。。一个一个循环取值。。。,然后用递归实现
for i in l:
print(i)
if type(i) == list:
for j in i:
print(j)
if type(j) == list:
for k in j:
print(k)
if type(k) == list:
for a in k:
print(a)
if type(a) == list:
for b in a:
print(b)
if type(b) == list:
for c in b:
print(c)
if type(c) == list:
for d in c:
print(d)
if type(d) == list:
for e in d:
print(e)
# 递归实现
def func(x): # 形参也是列表
for i in x:
if type(i) == list: # 中间判断循环的元素是不是列表
func(i) # 如果元素是列表,就要再次循环该值取出元素里的每个值
else:
print(i) # 如果不是列表直接打印值
func(l) # 实参填列表

浙公网安备 33010602011771号