# 内置函数二#     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 内置函数二相关推荐

  1. Python的内置函数(二十五)、readlines()

    概述 readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表,该列表可以由 Python 的 for... in ... 结构进行处理. 如果碰到结束符 EOF 则返回空字符串. ...

  2. python常用内置函数总结-Python 常用内置函数

    Python 常用内置函数如下: 1. abs()函数返回数字的绝对值. print( abs(-45) )# 返回45print("abs(0.2):",abs(0.2))#返回 ...

  3. Python模块内置函数

    一.任务描述   本实验任务主要完成对Python模块内置函数进行一些基本操作,通过完成本实验任务,要求学生熟练掌握Python模块内置函数,并对Python内置函数的基本操作进行整理并填写工作任务报 ...

  4. python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理...

    python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...

  5. python print()内置函数

    啦啦啦啦啦啦,我又来了,学习任何东西都得坚持,我一定的好好加油!!! 今天来说说print()函数,前边我们已经用过好好多次啦,现在来学习哈吧!!! Python的内置函数,print() print ...

  6. python什么元素为真_如何使用Python基础内置函数

    如何使用Python基础内置函数 发布时间:2020-08-05 13:46:59

  7. len是python的内置函数吗_len(x) 击败 x.len(),从内置函数看 Python 的设计思想(内有公号宣传,不喜勿进)...

    内置函数是 Python 的一大特色,用极简的语法实现很多常用的操作. 它们预先定义在内置命名空间中,开箱即用,所见即所得.Python 被公认是一种新手友好型的语言,这种说法能够成立,内置函数在其中 ...

  8. python的内置函数

    python的内置函数: 1.abs() 将负数取正 print(abs(-10)) 2.all() 全部为真结果为真 print(all([1,0])) 3.any() 有一个为真,结果为真 pri ...

  9. Python 3 内置函数 tuple( )

    Python 3 内置函数 tuple( ) Python 3.8.5 语法格式: class tuple([iterable]) 描述: 将其他可迭代对象 iterable 转换为元组. 如果没有传 ...

最新文章

  1. 世界知名XML专家力作 ——《重构HTML:改善Web应用的设计》
  2. 使用浏览器访问 Linux 终端的方法
  3. vim 记录阅读信息
  4. 前标识(NT AUTHORITY\NETWORK SERVICE)没有对 (转)
  5. 单臂路由与三层交换技术简单介绍
  6. 受限玻尔兹曼机准备知识——MCMC方法和Gibbs采样
  7. Android Studio 创建第一个Android工程项目
  8. GLTF格式——关系描述
  9. java非负整数怎么设_使用JAVA将非负十进制整数n转换成b进制,递归方法与非递归方法...
  10. markdown 流程图js_如何在Markdown中画流程图
  11. 学校计算机考试是win几,计算机一级考试考的是什么系统
  12. Oracle数据库的下载地址
  13. 如何进行反欺诈风控模型冷启动
  14. extjs6 带条件查询分页
  15. 均价 和 最新价格 是啥意思 什么是MACD DIFF DEA 指标?
  16. Java基础篇--异常机制
  17. 销售额高达2.8亿的 “像素猫头鹰”项目Moonbirds,何以令NFT收藏家趋之若鹜?
  18. 怎么把移动硬盘挂载到linux,linux 怎么挂载移动硬盘
  19. Pikachu靶场-SQL注入-搜索型注入过关步骤
  20. vue加载动画element ui V-loading属性 踩坑记录

热门文章

  1. restful 风格 web api规范
  2. java 数据库查询Date类型字段 没有了时分秒 全为 00 的解决办法
  3. no suitable driver found for jdbc:mysql//localhost:3306/..
  4. 推荐35个优秀的电子商务网站界面 (转)
  5. Do you want to put on or loose weight?
  6. HEU 5039 Move Woods
  7. ECCV 2020 论文大盘点-光流篇
  8. 2019全国智能机器人与SLAM技术博士生论坛第二轮通知
  9. 提升Python程序性能的7个习惯
  10. 数据结构期末复习之B树、B+树