内置函数(二) 闭包

内置函数(二)

内置函数

1.abs( )
print([abs(i) for i in lst])
# 绝对值 -- 返回的都是正数

2.enumerate( )
[(0,1)(1,2)(2,3)]
print([i for i in enumerate(lst,10)])
# 枚举("可迭代对象","序号的起始值") 默认的起始值是 0 

3.max( )
print(max([1,2,3,4,56,7,8]))
# 求最大值
print(max([1,2,-33,4,5],key=abs))
# key指定查找最大值的规则

4.min( )
print(min([1,2,3,4,-56,7,8]))
# 求最小值

5.sum( )
print(sum([1,2,3,4,5],100))
# 求和

6.
python3 中:
range( )
g = range(0,10)
g.__iter__()
# 范围 本身是一个可迭代对象 有__iter__()方法
python2 中:
range( )
# 获取的是一个列表
Xrange( )
# 获取的是一个可迭代对象

7.open( )
# 文件操作

8.print( )
print(sep=" ",end="\n" )
print(1,2,3,sep="  ")
# sep是多个元素的连接符

9.len( )
# 公共方法,求长度的函数(除数字和bool值)

10.list( )
# 列表
11.dict( )
print(dict((1,2),(2,3)(3,4)))
print(dict([i for i in enumerate(range(20),1)]))
# 字典

12.zip( )
lst = [1,2,3,4,5]
lst1 = ["a","b","c","d","f","e"]
print(dict(list(zip(lst,lst1))))
# 拉链 -- 按照最少的进行合并

13.dir( )
print(dir(list))
# 查看当前函数的方法

匿名函数

f = lambda x,y:(x,y)
print(f(1,2))
print(f.__name__)

print((lambda x:x)(2)) # 同一行定义 同一行调用

lambda  # 关键字 -- 定义函数
x,y    # 形参
:x+y   # 返回值 -- 只能返回一个数据类型

示例:
lst = [lambda i:i*i for i in range(10)]
print(lst[2](2))
# 4
# 拆解
lst = []
for i in range(10):
    def func(i):
        return i*i
    lst.append(func)
print(lst[2](2))

示例2:
lst = [lambda :i*i for i in range(10)]
print(lst[2]())
# 81
# 拆解
lst = []
for i in range(10):
    def func():
        return i*i
    lst.append(func)
print(lst[2]())

# 一行函数
# 形参可以不写
# 返回值必须要写,返回值只能返回一个数据类型

内置函数(重要)

1.format( )
print(format(13,">20"))
# 右对齐
print(format(13,"<20"))
# 左对齐
print(format(13,"^20"))
# 居中
print(format(13,"08b"))
# 2进制
print(format(13,"08d"))
# 10进制
print(format(13,"08o"))
# 8进制
print(format(12,"08x"))
# 16进制

2.filter( )
# 过滤
lst = [1,2,3,4,5,6]
def func(s):
    return s > 3
print(list(filter(func,lst)))
# func就是自己定义一个过滤条件,lst 要迭代的对象

lst = [1,2,3,4,5,6,7]
print(list(filter(lambda x:x % 2 == 1,lst)))

3.map( )
print(list(map(lambda x:x*x,[1,2,3,8,4,5])))
# 对象映射
# 对可迭代对象中的每个元素进行加工

4.reverse( )
reversed( )
# 两者都是反转 前者在源数据上进行反转 后者开辟新空间进行反转,不影响源数据

5.sort( )
sorted( )
# 两者都是排序 前者在源数据上进行排序 后者开辟新空间进行排序,不影响源数据

lst = [1,23,34,4,5,213,123,41,12,32,1]
print(sorted(lst))
print(lst)
# 升序

lst = [1,23,34,4,5,213,123,41,12,32,1]
print(sorted(lst,reverse=True))
# 降序

dic = {"key":1,"key1":2,"key3":56}
print(sorted(dic,key=lambda x:dic[x],reverse=True))
# 指定key的排序规则

6.reduce( )
from functools import reduce
print(reduce(lambda x,y:x+y,[1,2,3,4,5]))
# 累计算

闭包

def func():
    a = 1
    def f1():
        def foo():
            print(a)
        return foo
    return f1
ret = func()       # 或者直接 func()()()
a = ret()
a()

# 在嵌套函数内,使用非全局变量(且不是本层变量) -- 就是闭包
# print(foo()()().__closure__)判断是否闭包

了解:
print(ret.__code__.co_freevars)
# 获取的是自由变量
print(ret.__code__.co_varnames)
# 获取的是局部变量

闭包的作用:
1.保证数据的安全性
2.装饰器

原文地址:https://www.cnblogs.com/beichen123/p/11247127.html

时间: 2024-10-09 17:01:29

内置函数(二) 闭包的相关文章

学习13.内容# 1.内置函数二 # 2.闭包

目录 内置函数二 重要的内置函数和匿名函数 闭包 内置函数二 abs 绝对值 返回的都是正数 print([abd(i) for i in lst]) enumerate 枚举 ("可迭代对象","序号的起始值") 默认起始值是0 [(0,1),(1,2),(2,3)] print([i for i in enumerate(lst,10)]) lst = [11,22,33,-44,23,21] new_lst = [] for i in enumerate(ls

15 .内置函数(二),递归函数,二分法

14. 前 方 高能-内置函数 二 本节主要内容: lamda匿匿名函数 sorted() filter() map() 递归函数 一. lamda匿匿名函数为了了解决 一些简单的需求 而设计的 一句句话函数 # 计算n的n次 方 def func(n): return n**n print(func(10)) f = lambda n: n**n print(f(10)) lambda表 示的是匿匿名函数. 不需要 用def来声明,  一句句话就可以声明出 一个函数 语法: 函数名 = lam

内置函数二、递归、二分法

一.lambda匿名函数 为了解决一些简单的需求而设计的一句话函数,如下示例: # 以前的写法 def func(n): return n ** n print(func(10)) # lambda函数 f = lambda n : n ** n print(f(10)) print(f.__name__) # 结果为:<lambda> # __name__可以查看函数的名字,匿名函数__name__的值都是<lambda> lambda表示的是匿名函数,不需要用def来声明,一句

Python 13 内置函数二

内置函数知识点二 lamda匿名函数 sorted() filter() map() 递归函数 lamda 怎么使用 #计算n的n次方 普通的函数写 def func(n): return n**n print(func(10)) 一, lamda匿名函数 为了解决一些简单的需求而设计的一句话函数 f = lambda n: n**n print(f(10)) lambda表明的是匿名函数. 不需要用def来声明, 一句话就可以声明出一个函数 语法: 函数名 = lambda 参数: 返回值 注

Python入门-内置函数二

看到标题你也能猜到今天要说大概内容是什么了,没错,昨天没有说完的部分再给大家说说(有一些重合的部分),内置函数的内容比较多,并且工作中经常用到的却不太多,很多都是不太常用的,所以我就着重说一些比较常用的,今天再说两个函数:匿名函数和递归函数.还有就是二分法查找 首先来说一下匿名函数,因为几个比较重要的内置函数都要和匿名函数搭配来用 一.匿名函数 为了解决一些简单的需求而设计的一句话函数 # 计算n的n次方 def func(n): return n**n print(func(10)) f =

内置函数二: map sorted filter

-----------生活里没有奇迹,大部分的时候奇迹是你自己创造的. # -------------------------------------------------------------------------# # sum = lambda a,b:a+b# svm = sum(10,510)# print(svm) # st = ["魔兽世界","吃鸡","阴阳师","地下城与勇士","传奇"

百万年薪python之路 -- 内置函数二 -- 最常用的内置函数

1.内置函数 1.1 匿名函数 匿名函数,顾名思义就是没有名字的函数(其实是有名字的,就叫lambda),那么什么函数没有名字呢?这个就是我们以后面试或者工作中经常用匿名函数 lambda,也叫一句话函数. 现在有一个需求:你们写一个函数,此函数接收两个int参数,返回 和的值. def func(a,b): return a+b print(func(3,4)) 那么 接下来我们用匿名函数完成上面的需求: func = lambda a,b: a+b print(func(3, 4)) # 7

万物之源泉14 内置函数二

一. lamda匿名函数 为了解决一些简单的需求而设计的一句话函数# 计算n的n次方 #先用之前的函数办法 def func(n): return n**2 print(func(9)) #用lambda方法: a = lambda n : n*n print(a(9)) lambda表示的是匿名函数 不需要用def声明 语法: 函数名 = lambda 参数 : 返回值 而匿名函数返回的是lambda,所有函数都叫lambda 注意: 1.函数可以参数可以有多个,多个参数用逗号隔开 2.匿名函

16.内置函数二

停了两天没写博客了,不能再停了,先把量搞上去,然后再搞质量.毕竟现在是初学者,不知道怎样写博客 一.lamda匿名函数(为了解决一些简单函数而设计的函数) 语法:函数名 = lamda 参数: 返回值 注意: 1.lambda表示的是匿名函数. 不需要用def来声明, ?句话就可以声明出一个函数 2.函数的参数可以有多个. 多个参数之间用逗号隔开 3. 匿名函数不管多复杂. 只能写?行, 且逻辑结束后直接返回数据 4. 返回值和正常的函数一样, 可以是任意数据类型 案例: # 计算n的n次?方