第一题
文件内容如下,标题为:姓名,性别,年纪,薪资
import copy info_list = [] info_dict = {} salary_dic = {} age_dic = {} with open('zuoye.txt', 'r', encoding='utf8') as fr: for txt in fr: # print(txt) txt = txt.strip().split() # print(txt) p_name, p_sex, p_age, p_salary = txt info_dict['name'] = p_name info_dict['sex'] = p_sex info_dict['age'] = int(p_age) info_dict['salary'] = int(p_salary) # print(info_dict) info_list.append(copy.deepcopy(info_dict)) print(info_list)
根据1得到的列表,取出薪资最高的人的信息
salary_highest_people_info = max(info_list,key=lambda item:item['salary']) print(salary_highest_people_info)
根据1得到的列表,取出最年轻的人的信息
age_youngest_people_info = min(info_list,key=lambda item:item["age"]) print(age_youngest_people_info)
根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
for i in info_list: age_dic[i['name']] = i['age'] print(age_dic) age_youngest_people = min(age_dic,key=lambda item:age_dic[item]) print(age_youngest_people)
根据1得到的列表,过滤掉名字以a开头的人的信息
for item in info_list: if item['name'].startswith('a'): info_list.remove(item) print(info_list)
第二题
使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 4 7...
def feibo(n):
if n == 1:
return 0
elif n == 2:
return 1
else:
return feibo(n - 1) + feibo(n - 2)
num = input('请输入你想得到斐波那契数列的第几个数?\n>>:')
for i in range(1,int(num)+1):
print(feibo(i))
第三题
一个嵌套很多层的列表,如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]]]]]],999]
lt = []
def f1(lis):
for i in lis:
if isinstance(i,int) == True:
lt.append(i)
elif isinstance(i,list) == True:
f1(i)
f1(l)
print(lt)