Some Usefull python function
4 min
Python Lambda
在读别人代码的时候看到的,发现自己对这个东西不是很熟悉,复习一下记个笔记。
lambda 函数是一种小的匿名函数。
lambda 函数可接受任意数量的参数,但只能有一个表达式。
语法
lambda arguments : expression
执行表达式并返回结果
实例
x = lambda a : a + 10
print(x(5))这一句话就定义了一个lambda函数,a是这个函数的参数,a+10是这个函数的表达式,x是这个函数的名字。
Lambda可以接受任意数量的参数,比如
x = lambda a, b, c : a + b + c
print(x(5, 6, 2))这个函数就是三个参数
函数内匿名函数
假设我定义了这么一个函数
def myfunc(n):
return lambda a : a * n这个函数的作用是把a变成n倍。
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)这样就可以很快速地构建出来这样的一个函数:
def mydoubler(a):
return n*2不需要想用别的的时候再去定义,比如我还想再来一个三倍的函数,就直接:
mytripler = myfunc(3)zip
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。
我们可以使用 list() 转换来输出列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 ***** 号操作符,可以将元组解压为列表。
语法
zip([iterable, ...])实例
>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 返回一个对象
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped) # list() 转换为列表
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c))# 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> a1, a2 = zip(*zip(a,b))# 与 zip 相反,zip(*) 可理解为解压,返回二维矩阵式
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]map
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表
语法
map(function, iterable, ...)实例
>>>def square(x) : # 计算平方数
return x ** 2
>>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数
[1, 4, 9, 16, 25] # 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]dict
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
'd = {key1 : value1, key2 : value2 }'