day 014 python 内置函数
1. lamda匿名函数
2. sorted()
3. filter()
4. map()
5. 递归函数
一 匿名函数(lambda) 函数名= lambda 参数: 返回值
简单算法 a+b
常规算法
def func(a,b):
# return a+b
# ret=func(,)
# print(ret)
lambda算法
f=lambda a,b: a+b
print(f(,)) 又如:
# 计算n的n次⽅方
def func(n):
return n**n
print(func(10))
f = lambda n: n**n
print(f(10))
需要注意:
1. 函数的参数可以有多个. 多个参数之间⽤用逗号隔开
2. 匿匿名函数不管多复杂. 只能写⼀一⾏行行, 且逻辑结束后直接返回数据
3. 返回值和正常的函数⼀一样, 可以是任意数据类型
二 sorted (排序函数) sorted(iterable, key=func, reverse=True/False)
语法:sorted(Iterable, key=None, reverse=False) sorted(Iterable, key=None, reverse=False)
key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每一个元素传递给这个函
数的参数. 根据函数运算的结果进行排序(把可迭代对象中的每一个元素拿出来, 放到func中运行. 返回一个数字. 根据数字进行排序)
例子1
和lambda 使用
lst=['迪拉姆 ','十多个','所有的','撒','我的']
def func(name):
# # return len(name) % 2
# a=sorted(lst,key=lambda:len(name))
# print(a) 按以下年龄进行排序
lst = [{"id": 1, "name": 'alex', "age": 18},
# {"id": 2, "name": 'wusir', "age": 16},
# {"id": 3, "name": 'taibai', "age": 17}]
# # # def func(dic):
# # # return dic['age']
# # # l1=sorted(lst,key=func) 配合函数用
print(l1)
l2=sorted(lst,key=lambda a:a['age']) ## 配合lambda用
print(l2)
和函数使用
# 根据字串长度进行排序
lst = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"]
# 计算字符串串⻓长度
def func(s):
return len(s)
print(sorted(lst, key=func))
三 filter(筛选函数)
语法: filter(function. Iterable)
function: 用来筛选的函数. 在filter中会自动的把iterable中的元素传递给function. 然后
根据function返回的True或者False来判断是否保留留此项数据 (把可迭代对象中的每一个元素拿出来, 放到func中运行.返回True/False. 根据返回的True和False来决定这个数据是否保留)
Iterable: 可迭代对象
和 函数和 lambda使用: lst=[,,,,,]
def func(age):
return age>18and age%== f=filter(func,lst)
# f=filter(lambda age:age> and age%==,lst)
print(f)
# # print("__iter__"in dir(f))
for i in f:
print(i)
筛选年龄大于17的例子:
lst = [{"id": , "name": 'alex', "age": },
{"id": , "name": 'wusir', "age": },
{"id": , "name": 'taibai', "age": }]
f=filter(lambda a:a['age']>=,lst)
# for i in f:
# print(i)
print(list(f))
四 map (映射函数)
语法: map(function, iterable)
可以对可迭代对象中的每一个元素进⾏行行映射. 分别取执行
function (把可迭代对象中的每一个元素拿出来, 放到func中运行.返回数据就是结果)
计算列表中每个元素乘2的值
lst=[,,,,]
# l1=[i** for i in lst]
# print(l1)
# f=map(lambda r:r*,lst) #可以处理更复杂
# print(list(f))
计算两个列表相同位置的数据的和
# lst1 = [, , , , ]
# lst2 = [, , , , ]
#
# print(list(map(lambda x, y: x + y , lst1, lst2)))
五 递归(在函数中调⽤用函数本⾝身. 就是递归) 越画越小的圈
ef func():
print("我叫李嘉诚")
func() # 递归入口
func() # 调用函数
用递归实现1到100
import sys
sys.setrecursionlimit() #设置递归最大深度,一般不要改
def func(n):
print(n)
func(n+)
func() 结果为3222 #d递归深度官网给的为1000 但到不了1000 一般到997- 原因
为正式启动递归前要占几个数
因递归可以来遍历各种树形结构,例如我们的文件夹系统,可以使用递归来遍历.
例子
import os
#
# def func(file_path,ceng):
# lst= os.listdir(file_path)# 得到文件夹里所有的文件
# for file in lst: # 文件名
# #获取文件路径的全路经
# full_path=os.path.join(file_path,file)
# if os.path.isdir(full_path): #判断这个路径是否是一个文件夹
# print("\t"*ceng,file)
# func(full_path,ceng+)
# else:
# print("\t"*ceng,file)
# else:
# return
#
# func("E:\上课打包",)
六 二分法查找:
前提: 有序. (必须是有序序列列.)
核心思想:掐头去尾取中间
例子
lst = [,,,,,,,,,,,,,,,,,,,,,,,,]
# lst=[, , , , , , , , , , , , , , , , , , , , , , , , ]
lst1=sorted(lst)
print(lst1) #无序例子 先排序
# 方法一
n=int(input("请输入一个数:")) left=
right=len(lst1)-
while left<=right:
mid=(left+right)//2 # 索引只能是整数 所以地板除
if n>lst1[mid]:
left=mid+
elif n<lst1[mid]:
right=mid-
else:
print("这个数在%s位置:" % mid)
break else:
print("你要找的数不再这")
方法二 递归 切片
递归的第一套方案
# def func(n, lst):
# left = 0
# right = len(lst) - 1
# if left <= right:
# mid = (left + right)//2
# if n > lst[mid]:
# new_lst = lst[mid+1:]
# return func(n, new_lst)
# elif n < lst[mid]:
# new_lst = lst[:mid]
# return func(n, new_lst)
# else:
# print("刚刚好, 在这里出现了")
# return True
# else:
# return False
#
# lst = [1, 1, 1, 1, 2, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 7, 8, 8, 9, 16, 32, 44, 55, 78, 89]
# ret = func(2, lst)
# print(ret)
day 014 python 内置函数的更多相关文章
- python内置函数
python内置函数 官方文档:点击 在这里我只列举一些常见的内置函数用法 1.abs()[求数字的绝对值] >>> abs(-13) 13 2.all() 判断所有集合元素都为真的 ...
- python 内置函数和函数装饰器
python内置函数 1.数学相关 abs(x) 取x绝对值 divmode(x,y) 取x除以y的商和余数,常用做分页,返回商和余数组成一个元组 pow(x,y[,z]) 取x的y次方 ,等同于x ...
- Python基础篇【第2篇】: Python内置函数(一)
Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位 ...
- [python基础知识]python内置函数map/reduce/filter
python内置函数map/reduce/filter 这三个函数用的顺手了,很cool. filter()函数:filter函数相当于过滤,调用一个bool_func(只返回bool类型数据的方法) ...
- Python内置函数进制转换的用法
使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Convert an integer numb ...
- Python内置函数(12)——str
英文文档: class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a string ...
- Python内置函数(61)——str
英文文档: class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a string ...
- 那些年,很多人没看懂的Python内置函数
Python之所以特别的简单就是因为有很多的内置函数是在你的程序"运行之前"就已经帮你运行好了,所以,可以用这个的特性简化很多的步骤.这也是让Python语言变得特别的简单的原因之 ...
- Python 内置函数笔记
其中有几个方法没怎么用过, 所以没整理到 Python内置函数 abs(a) 返回a的绝对值.该参数可以是整数或浮点数.如果参数是一个复数,则返回其大小 all(a) 如果元组.列表里面的所有元素都非 ...
随机推荐
- 消费Restful的web服务(三)
构架工程 创建一个springboot工程,去消费RESTFUL的服务.这个服务是 http:///gturnquist-quoters.cfapps.io/api/random ,它会随机返回Jso ...
- js 正则常用函数 会正则得永生
正则表达式作为一种匹配处理字符串的利器在很多语言中都得到了广泛实现和应用,web开发本质上是处理字符串(服务端接受请求处理后拼接字符串作为响应,这在早期的CGI编程中最明显,然后客户端解析字符串进行渲 ...
- 文献管理软件zotero的一点使用感受作者: 杨林畅
作者是我的本科同学叶家鑫 http://www.renren.com/profile.do?id=240875124 文章写于去年12月,我做了一些排版上的修改,括号内的蓝字为我所加 ---- zot ...
- U帮忙U盘装系统工具使用教程
在用U盘装系统时首先我们需要了解一下U帮忙U盘启动盘的制作以及BIOS设置U盘启动和U盘装系统步骤后才能让操作更顺利的完成,下面就来说说U帮忙U盘装系统工具使用教程,希望对大家有所帮助! 如果您不了解 ...
- IDE 版本
BDS 5 2007 D11 VER180 and VER185 RAD Studio 8 XE D15 VER 220 RAD 18 XE 10.1 Berlin D24 VER310 St ...
- JDK1.8源码逐字逐句带你理解LinkedHashMap底层
注意 我希望看这篇的文章的小伙伴如果没有了解过HashMap那么可以先看看我这篇文章:http://blog.csdn.net/u012403290/article/details/65442646, ...
- 对称加密-java实现
主要步骤如下: 1.利用SecretKeyFactory.getInstance("加密算法")创建密钥工厂,加密算法如"DES","AES" ...
- 自定义ListView 、GradView 重写onMeasure方法让其正确显示
1 继承原始的 2 重写onMeasure方法 @Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpe ...
- matlab中的reshape快速理解,卷积和乘积之间的转换
reshape: THe convertion between convolution and multiplication:
- final视频
作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2476] 视频链接[https://v.youku.com/v_show/id_ ...