各种数据类型用法以及函数和生成器使用

举报
在下周周ovo 发表于 2022/08/07 15:42:12 2022/08/07
【摘要】 各种数据类型用法以及函数和生成器使用

目录

🗣️前言

👥题目一

👣解析

👣答案

👥题目二

👣解析

👣答案

👥题目三

👣解析 

👣答案

👥题目四

👣解析

👣答案

👥题目五

👣解析

👣答案

🗣️最后



🗣️前言

💌本次的题目主要向各位小伙伴们介绍的Python经典例题<各种数据类型用法以及函数和生成器使用>,带各位掌握Python基础,希望各位小伙伴们能够在这里收获到更多知识!让我们一起学习!一起进步!

👥题目一

编辑

1

👣解析

用到知识点:生成器中的各种推导式,函数的使用

👣答案

def main(lst):
    return [i for i in lst if i>=(sum(lst)/len(lst))]  #这是生成器中的列表推导式


👥题目二

 编辑


👣解析

需要使用到if语句,列表的各种操作方法,函数的使用

👣答案

def main(lst,item):
    if item in lst:            #先判断列表中是否存在这个数
        return lst.index(item) #列表中index方法的使用
    else:
        return '不存在'


👥题目三

 编辑


👣解析 

本题的难度过小,主要考察对内置函数的掌握情况

👣答案

def main(p,q):
    return divmod(p,q)    #内置divmod函数返回的就是商和余数的元祖


👥题目四

编辑

👣解析

 这道题目有点难想到,主要使用到的方法就是内置函数的使用,至于是哪一个就要自己思考了

👣答案


def main(num):
    return sum(map(int,str(num)))

先来说为什么要str(num):

由map() 函数语法:map(function, iterable, ...),因为接收了一个整数num是不可迭代的,而map语法要是个可迭代的所以利用数据类型强制转换将num转化为可迭代的字符串数据类型就可以满足map函数的使用条件了。

以下是便于理解的代码,现在分开来一步一步讲解

  1. 先来讲内部的map(int,str(num))这一步的目的
a = 1234567
print(map(int,str(a)))
for i in map(int,str(a)):
    print(i)

输出结果:
<map object at 0x000001FEB8AAF0D0>
1
2
3
4
5
6
7
  1. 再来讲外层的sum函数,sum函数语法为sum(*args, **kwargs),sum接收了第一步传入的动态参数将其相加就得到了结果


👥题目五

👣解析

第五题也是这几个题目中最难的题目了,它考了我们内置函数,运算符的使用,还添加了很多限制功能 

👣答案

先来演示我一开始的错误答案,在这个软件上显示是错误的

 但在Python中运行这段代码是这样的

 不严谨的原因是转化为set(lst)后虽然去重了,但生成集合是无序的,之后在list(set(lst))也可能是无序的,这与题意要求的顺序是不匹配的

正确解答

对答案中lst2.sort(key=lst.index)进行解释,注释非常详细。


li = [1,2,3]
print(li.index)
#print(li.index),输出的那一串为函数名(函数在内存中的地址)
#若b也是一个列表,b.sort(key=a.index), 
#其中key为形参,接收类型必须为函数。
#即列表b中的每个元素都要经过a.index函数做映射(y=f(x)),
#按映射值大小进行排序
#通俗来说进行b.sort(key=a.index)后b会按a列表的顺序排列。

输出结果:
<built-in method index of list object at 0x0000026A26484B00>

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。