python D14 内置函数二
# 内置函数二# 1、lambda匿名函数# 2、sorted()# 3、filter()# 4、map()# 5、递归函数 # 一、lambda匿名函数# 未来解决一些简单的需求而设计的一句函数# func = lambda n: n**n # n的n次方# print(func(5))# lambda表示的是匿名函数,不需要用def来声明,一句话就可以声明出一个函数# 语法:# 函数名 = lambda 参数: 返回值# 注意:# 1、函数的参数可以有多个,多个参数之间用逗号隔开# 2、匿名函数不管多复杂,只能写一行,且逻辑结束后直接返回数据# 3、返回值和正常的函数一样,可以是任意数据类型 # 匿名函数并不是谁一定没有名字,这里前面的变量就是一个函数名,说他是匿名原因# # 是我们通过__name__查看的时候是没有名字的,统一都叫lambda,在调用的时候没有# # 什么特别之处,像正常的函数调用即可 # 二、sorted()# 排序函数# 语法:sorted(Iterable, key=None, reverse=False)# Iterable:可迭代对象# key:排序规则(排序函数),在sorted内部会将可迭代对象中的每一个元素传递给# 这个函数的参数,根据函数运算的结果进行排序# reverse:是否倒叙,True:倒叙,False:正序 # 和函数组合使用# 根据字符串长度进行排序# lst = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"]# def func(s):# return len(s)# print(sorted(lst, key = func)) # ['狐仙', '麻花藤', '冈本次郎', '中央情报局']# # 和lambda组合使用# lst = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"]# print(sorted(lst, key = lambda s: len(s))) #['狐仙', '麻花藤', '冈本次郎', '中央情报局'] # 三、filter()# 筛选函数# 语法:filter(function, Iterable)# function:用来筛选的函数,在filter中会自动的把ilterable中的元素传递给function# 然后根据function返回值得True或者False来判断是否保留此项数据# ilterable:可迭代对象# lst = [1, 2, 3, 4, 5, 6, 7] # 筛选偶数# lst_new = filter(lambda num: num % 2 == 0, lst)# print(lst_new) # <filter object at 0x00A327D0> 可迭代对象# print(list(lst_new)) # 四、map()# 映射函数# 语法:map(function,iterable)可以对可迭代对象中的每一个元素进行映射,分别# 取执行function# 计算列表每个元素的平方,放回新列表,与lambda连用# lst = [1, 2, 3, 4, 5]# lst_new = map(lambda num: num**2, lst)# print(lst_new) # <map object at 0x03432510># print("__iter__" in dir(lst_new)) # True# print(list(lst_new)) # [1, 4, 9, 16, 25] # 五、递归# 在函数中调用函数本身,就是递归# def func():# print("我是谁")# func()# func() # 在python中递归的深度最大到998 # 递归的应用:# 我们可以使用递归来遍历各种树形结构,比如我们的文件夹系统,可以使用递归来遍历该# 文件夹中的所有文件# import os# def func(file,ceng):# files = os.listdir(file)# for fn in files:# new_files = os.path.join(file, fn)# if os.path.isdir(new_files):# print("\t"*ceng, fn)# func(new_files, ceng + 1)# else:# print("\t"*ceng, fn)# lst = os.listdir(path) # 打开一个文件夹. 获取到文件夹内的所有内容 ["a","b"]# for el in lst: # 当前文件夹内的所有的文件名(包括文件夹名字)# # 拼接文件的真实路径# file_real_path = os.path.join(path, el)# # 判断这个路径是文件还是文件夹# if os.path.isdir(file_real_path):# # 递归的入口# print(el)# func(file_real_path) # 重新执行刚才的操作## else: # 不是文件夹, 是文件# # 递归的出口# print(el) # os:文件操作函数# os.listdir():将目标文件所有文件名放在一个列表里# os.path.join():拼接文件夹# os.path.isdir():判断是否为文件夹 # os : 和操作系统相关的一些功能# os.listdir("d:/") 帮我们打开一个文件夹. 返回文件夹内的所有内容(文件的名字)# os.path.join("马化腾","马云") 马化腾/马云# os.path.isdir(路径) 判断这个路径是文件夹还是文件 # 六、二分法查找# ⼆分查找. 每次能够排除掉⼀半的数据. 查找的效率非常⾼. 但是局限性比较⼤. 必须是有# 序序列才可以使⽤⼆分查找# 要求: 查找的序列必须是有序序列.# 判断n是否在lst中出现. 如果出现请返回n所在的位置# lst = [22, 33, 44, 55, 66, 77, 88, 99, 101, 238, 345, 456, 567, 678, 789] # 二分法查找——非递归算法(优选)# n = int(input("请输入一个数:"))# left = 0 # 列表的左边界# right = len(lst) - 1 # 列表的右边界# while left <= right: #d当左边界大于右边界则没找打这个数,循环借宿# mid = (left + right) // 2# if n < lst[mid]: # 你输入的数小于中间值则右边界为 mid -1# right = mid -1# if n > lst[mid]: # 你输入的数小于中间值则左边界为 left -1# left = mid + 1# if n == lst[mid]:# print("有")# break# else:# print("没有") # 二分法——递归# lst = [22, 33, 44, 55, 66, 77, 88, 99, 101, 238, 345, 456, 567, 678, 789]# n = int(input("请输入一个数:"))# def func(lst, n, left, right):# mid = (left + right) // 2# if left > right:# print("没有")# return False# if n < lst[mid]:# right = mid - 1# return func(lst, n, left, right)# if n > lst[mid]:# left = mid + 1# return func(lst, n, left, right)# if n == lst[mid]:# print("有")# return True# # func(lst, n, 0, (len(lst)-1))# result = func(lst, n, 0, (len(lst)-1))# print(result) # 切换列表# lst = [22, 33, 44, 55, 66, 77, 88, 99, 101, 238, 345, 456, 567, 678, 789]# n = int(input("请输入一个数:"))# def func(lst,n):# left = 0# right = len(lst)-1# mid = (left + right) // 2# if n < lst[mid]:# return func(lst[:mid], n)# elif n > lst[mid]:# return func(lst[mid+1:], n)# elif len(lst) == 0:# print("没有")# return False# else:# print("找到了")# return True# func(lst,n)# print(func(lst,n)) # 七、递归深度# python中最大的递归深度是1000 但是你永远到不了1000
转载于:https://www.cnblogs.com/z520h123/p/9911416.html
python D14 内置函数二相关推荐
- Python的内置函数(二十五)、readlines()
概述 readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理. 如果碰到结束符 EOF 则返回空字符串. ...
- python常用内置函数总结-Python 常用内置函数
Python 常用内置函数如下: 1. abs()函数返回数字的绝对值. print( abs(-45) )# 返回45print("abs(0.2):",abs(0.2))#返回 ...
- Python模块内置函数
一.任务描述 本实验任务主要完成对Python模块内置函数进行一些基本操作,通过完成本实验任务,要求学生熟练掌握Python模块内置函数,并对Python内置函数的基本操作进行整理并填写工作任务报 ...
- python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理...
python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...
- python print()内置函数
啦啦啦啦啦啦,我又来了,学习任何东西都得坚持,我一定的好好加油!!! 今天来说说print()函数,前边我们已经用过好好多次啦,现在来学习哈吧!!! Python的内置函数,print() print ...
- python什么元素为真_如何使用Python基础内置函数
如何使用Python基础内置函数 发布时间:2020-08-05 13:46:59
- len是python的内置函数吗_len(x) 击败 x.len(),从内置函数看 Python 的设计思想(内有公号宣传,不喜勿进)...
内置函数是 Python 的一大特色,用极简的语法实现很多常用的操作. 它们预先定义在内置命名空间中,开箱即用,所见即所得.Python 被公认是一种新手友好型的语言,这种说法能够成立,内置函数在其中 ...
- python的内置函数
python的内置函数: 1.abs() 将负数取正 print(abs(-10)) 2.all() 全部为真结果为真 print(all([1,0])) 3.any() 有一个为真,结果为真 pri ...
- Python 3 内置函数 tuple( )
Python 3 内置函数 tuple( ) Python 3.8.5 语法格式: class tuple([iterable]) 描述: 将其他可迭代对象 iterable 转换为元组. 如果没有传 ...
最新文章
- 世界知名XML专家力作 ——《重构HTML:改善Web应用的设计》
- 使用浏览器访问 Linux 终端的方法
- vim 记录阅读信息
- 前标识(NT AUTHORITY\NETWORK SERVICE)没有对 (转)
- 单臂路由与三层交换技术简单介绍
- 受限玻尔兹曼机准备知识——MCMC方法和Gibbs采样
- Android Studio 创建第一个Android工程项目
- GLTF格式——关系描述
- java非负整数怎么设_使用JAVA将非负十进制整数n转换成b进制,递归方法与非递归方法...
- markdown 流程图js_如何在Markdown中画流程图
- 学校计算机考试是win几,计算机一级考试考的是什么系统
- Oracle数据库的下载地址
- 如何进行反欺诈风控模型冷启动
- extjs6 带条件查询分页
- 均价 和 最新价格 是啥意思 什么是MACD DIFF DEA 指标?
- Java基础篇--异常机制
- 销售额高达2.8亿的 “像素猫头鹰”项目Moonbirds,何以令NFT收藏家趋之若鹜?
- 怎么把移动硬盘挂载到linux,linux 怎么挂载移动硬盘
- Pikachu靶场-SQL注入-搜索型注入过关步骤
- vue加载动画element ui V-loading属性 踩坑记录
热门文章
- restful 风格 web api规范
- java 数据库查询Date类型字段 没有了时分秒 全为 00 的解决办法
- no suitable driver found for jdbc:mysql//localhost:3306/..
- 推荐35个优秀的电子商务网站界面 (转)
- Do you want to put on or loose weight?
- HEU 5039 Move Woods
- ECCV 2020 论文大盘点-光流篇
- 2019全国智能机器人与SLAM技术博士生论坛第二轮通知
- 提升Python程序性能的7个习惯
- 数据结构期末复习之B树、B+树