''' yaohong male 18 3000 xiaoming male 38 30000 xiaowang_sb female 28 20000 xiaohua female 28 10000 ''' ''' 要求: 从文件中取出每一条记录放入列表中, 1、列表的每个元素都是{'name':'liyi','sex':'male','age':18,'salary':3000}的形式 2、根据1得到的列表,取出薪资最高的人的信息I 3、根据1得到的列表,取出最年轻的人的信息 4、将names=['xiaohong','xiaoming','xiaowang_sb','xiaohua']中的名字全部变大写 5、将names=['xiaohong','xiaoming','xiaowang_sb','xiaohua']中以sb结尾的名字过滤掉, 6、根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式 7、根据1得到的列表,过滤掉名字以y开头的人的信息 ''' list_1 = [] # 1、列表的每个元素都是{'name':'liyi','sex':'male','age':18,'salary':3000}的形式 def f(): with open("ss.txt", mode='r', encoding='utf-8') as f: for l in f: name, sex, age, salary = (l.strip()).split(' ') # print(name) list_1.append({'name': name, 'sex': sex, 'age': age, 'salary': salary}) return list_1 # 2、根据1得到的列表,取出薪资最高的人的信息 def f2(lis): max_salary_list = [] for i in lis: max_salary_list.append(int(i.get('salary'))) max_salary = max(max_salary_list) print(lis[max_salary_list.index(max_salary)]) return max_salary # 求出所有人的薪资之和 def f3(lis): sum = 0 for i in lis: sum = sum + int(i.get('salary')) return sum # 3、根据1得到的列表,取出最年轻的人的信息 def f4(lis): index = 0 n = 0 min_age = int(lis[0].get('age')); for i in lis: if min_age > int(i.get('age')): min_age = int(i.get('age')) index = n n = n + 1 print(lis[index]) # 4、将names=['xiaohong','xiaoming','xiaowang_sb','xiaohua']中的名字全部变大写 def f5(lis): for i in lis: i.update({'name': i.get("name").upper()}) return lis # 5、将names=['xiaohong','xiaoming','xiaowang_sb','xiaohua']中以sb结尾的名字过滤掉, def f6(lis): new_list = [] for i in lis: if i.get("name").endswith("sb"): pass else: new_list.append(i) return new_list # 6、根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式 def f7(lis): for i in lis: i.update({'name': i.get("name").capitalize()}) return lis # 7、根据1得到的列表,过滤掉名字以y开头的人的信息 def f8(lis): new_list = [] for i in lis: if i.get("name").startswith("y"): pass else: new_list.append(i) return new_list
03-21
2084
07-27
269