🌌写在前面
本篇博客主要向各位小伙伴们介绍的Python经典例题 <几个重要的内置函数的使用> ,带各位掌握Python基础,希望各位小伙伴们能够在这里收获到更多知识!让我们一起学习!一起进步!
🌅题目一
用map来处理字符串列表name=['lisa','wu,'yua','zhou'],把列表中所有人,都变成名字加‘_nb’,比方lisa_nb
🌅解析
写这道题之前需要掌握内置map函数,匿名函数,以及各种列表推导式的使用
🌅答案
基础版:
name=['lisa','jadd','yua','mike'] def func(li): li = li+'_nb' return li ret = map(func,name) name = [i for i in ret] print(name)
进阶版:
name=['lisa','jadd','yua','mike'] ret = map(lambda li :li+'_nb',name) name = [i for i in ret] print(name)
输出结果:
🌄题目二
用filter函数处理数字列表,将列表num = [1,3,5,6,7,8]中所有的偶数筛选出来
🌄解析
写这题之前需要掌握内置函数filter、列表、匿名函数、列表推导式的使用方法
🌄答案
num = [1,3,5,6,7,8] res = filter(lambda x:x%2 == 0,num) num2 = [i for i in res] print(num2)
输出结果:
🏙️题目三
随意写一个有20行以上内容的文件,要求运行程序,先将内容读到内存中,用列表存储。接收用户输入页码,每页5行,仅输出当页的内容
🏙️解析
写此题之前需要掌握内置函数divmod、if条件语句的使用
🏙️答案
with open('01--昨日作业',encoding='utf8') as f: l = f.readlines() print(l) #查看文件'01--昨日作业'中含有的内容 page_num = int(input('请输入你要查看的页码 :')) pages,mod = divmod(len(l),5) #page表示一共有的页数,mod表示还剩的行数(五行为一页) if mod: #判断是否还剩有行数 pages += 1 #不满五行也算一页 if page_num > pages: #判断输入的页数是否超出总页数 print('你输入的页码有误') elif page_num == pages and mod != 0: for i in range(mod): print(l[(page_num-1)*5 + i].strip()) else: for i in range(5): print(l[(page_num-1)*5 + i].strip())
输出结果:
🌃题目四
**如下,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格 \
portfolio=[\
{’name':’IBM','shares': 100, 'price': 91.1},\
{'name':’AAPL','shares’: 50,'price': 543.22},\
{'name’:'FB','shares': 200,'price': 21.09},\
{’name':'HPQ','shares': 35, 'price': 31.75},\
{’name’ :'YHO0'.' shares': 45. 'price’: 16.35},\
{’name’:'ACME’,'shares’: 75,'price': 115.65}\
]****(1)、计算购买每支股票的总价\
(2)、用filter过滤出,单价大于100的股票有哪些**\
🌃解析
写此题需要掌握 字典的基础知识,内置函数filter的基本使用方法
🌃答案
(1)答案:
portfolio=[ {'name':'IBM','shares':100, 'price': 91.1}, {'name':'AAPL','shares': 50,'price': 543.22}, {'name':'FB','shares': 200,'price': 21.09}, {'name':'HPQ','shares': 35, 'price': 31.75}, {'name' :'YHO0','shares': 45, 'price': 16.35}, {'name':'ACME','shares': 75,'price': 115.65} ] ret1 = map(lambda dic:{dic['name']:dic['shares']*dic['price']},portfolio) print(list(ret1))
输出结果:
(2)答案:
portfolio=[ {'name':'IBM','shares':100, 'price': 91.1}, {'name':'AAPL','shares': 50,'price': 543.22}, {'name':'FB','shares': 200,'price': 21.09}, {'name':'HPQ','shares': 35, 'price': 31.75}, {'name' :'YHO0','shares': 45, 'price': 16.35}, {'name':'ACME','shares': 75,'price': 115.65} ] #第一种方法 ret2 = filter(lambda dic:True if dic['price']>100 else False,portfolio) print(list(ret2)) #第二种方法 ret3 = filter(lambda dic:dic['price']>100,portfolio) print(list(ret3))
输出结果:
🌌总结
这几个题目主要考的是重要内置函数map、filter的使用方法,同时掌握匿名函数的基本语法,能够在实际问题灵活使用,其中匿名函数的语法是:好了今天的分享结束了,我们“明天见”。