博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8.6 每日课后作业之递归调用番外篇(迭代器)
阅读量:4540 次
发布时间:2019-06-08

本文共 3051 字,大约阅读时间需要 10 分钟。

# 今日作业: # 1.简述 # 什么是迭代器 # 1、   迭代是一个重复的过程,并且每次重复都是基于上一次的结果而来 仅仅循环,不是迭代 # 什么是可迭代对象 # 在python中,但凡内置有__iter__方法的对象,都是可迭代的对象 # 什么是面向过程编程 #   核心是'过程'二字,过程即解决问题的步骤,即先干什么,再干什么。。。。 #   基于面向过程编写程序就好比在设计一条流水线,是一种机械式的思维方式。 # 2.自定义生成器 实现 range功能 # def my_range(start,stop,step=1): #     while start < stop: #         yield start#yield 4 #         start+=step # # abc=my_range(1,5,1) # print(next(abc)) # print(next(abc)) # print(next(abc)) # 3、文件shopping.txt内容如下 # mac,2000,3 # lenovo,3000,10 # tesla,1000000,10 # chicken,200,1 # # with open(r'shopping.txt','w',encoding='utf-8') as f: #     f.writelines(['mac,2000,3\n', #             'lenovo,3000,10\n', #             'tesla,1000000,10\n', #             'chicken,200,1\n']) # # 求总共花了多少钱? # with open(r'shopping.txt','r',encoding='utf-8') as f: #     info=[line.strip('\n').split(',') for line in f] #     res=sum(int(i[1])*int(i[2]) for i in info) #     print(res) # 打印出所有的商品信息,格式为 # [{'name':'xxx','price':'3333','count':3},....] # l=[] # with open(r'shopping.txt','r',encoding='utf-8') as f: #     for line in f: #         dic={} #         info=line.strip('\n').split(',') #         dic['name'] = info[0] #         dic['price'] = info[1] #         dic['count'] = info[2] #         l.append(dic) # print(l) # 求单价大于10000的商品信息,格式同上 # with open(r'shopping.txt',encoding='utf-8') as f: #     info=[{
# 'name': line.strip('\n').split(',')[0], # 'price': float(line.strip('\n').split(',')[1]), # 'count': int(line.strip('\n').split(',')[2]) } # for line in f if float(line.strip('\n').split(',')[1] )> 10000] # print(info) # 4、文件内容如下,标题为:姓名,性别,年纪,薪资 # egon male 18 3000 # alex male 38 30000 # wupeiqi female 28 20000 # yuanhao female 28 10000 # # with open(r'salary.txt','w',encoding='utf-8') as f: # f.writelines(['egon male 18 3000\n', # 'alex male 38 30000\n', # 'wupeiqi female 28 20000\n', # 'yuanhao female 28 10000\n']) # # 要求: # # 从文件中取出每一条记录放入列表中,列表的每个元素都是{'name':'egon','sex':'male','age':18,'salary':3000}的形式 l=[] with open(r'salary.txt','r',encoding='utf-8') as f: for line in f: dic={} info=line.split() dic['name'] = info[0] dic['sex'] = info[1] dic['age'] = info[2] dic['salary'] = info[3] l.append(dic) print(l) # # 5 根据1得到的列表,取出薪资最高的人的信息 # print(max(l,key=lambda dic:dic['salary'])) # # 6 根据1得到的列表,取出最年轻的人的信息 # print(min(l,key=lambda dic:dic['age'])) # # 7 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式 # l1=[] # with open(r'salary.txt','r',encoding='utf-8') as f: # for line in f: # dic1={} # info=line.strip('\n').split(' ') # dic1['name'] = info[0].capitalize() # dic1['sex'] = info[1] # dic1['age'] = info[2] # dic1['salary'] = info[3] # l1.append(dic1) # print(list(l1)) # 8 根据1得到的列表,过滤掉名字以a开头的人的信息 g=filter(lambda item:item['name'].startswith('a'),l) print(list(g)) l.remove({'name': 'alex', 'sex': 'male', 'age': '38', 'salary': '30000'}) # l.pop(1) print(l)

转载于:https://www.cnblogs.com/Maikes/p/9458885.html

你可能感兴趣的文章
PAT甲级——A1049 Counting Ones
查看>>
PAT甲级——A1050 String Subtraction
查看>>
PAT甲级——A1021 Deepest Root
查看>>
PAT甲级——A1051 Pop Sequence
查看>>
PAT甲级——A1022 Digital Library
查看>>
PAT甲级——A1052 Linked List Sorting
查看>>
PAT甲级——A1026 Table Tennis
查看>>
PAT甲级——A1055 The World's Richest
查看>>
PAT甲级——A1036 Boys vs Girls
查看>>
PAT甲级——A1057 Stack
查看>>
PAT甲级——A1038 Recover the Smallest Number
查看>>
PAT甲级——A1058 A+B in Hogwarts
查看>>
PAT甲级——A1042 Shuffling Machine
查看>>
PAT甲级——A1063 Set Similarity
查看>>
PAT甲级——A1047 Student List for Course
查看>>
PAT甲级——A1054 The Dominant Color
查看>>
PAT甲级——A1075 PAT Judge
查看>>
PAT甲级——A1056 Mice and Rice
查看>>
PAT甲级——A1080 Graduate Admission
查看>>
PAT甲级——A1060 Are They Equal
查看>>