python的一些小函数很能提高效率,平时在工作中经常忽视这些内容,而使用很原始粗暴的方法写代码;写了一段时间以后,发现自己的提高很少,要写个小脚本也要纠结半天,跟那些大拿们相差太大;所以要检讨自己,看看自己可以从那方面提高自己的技术能力;
今天首先学习下python的实用小函数:
lamda() 返回一个函数表达式,类似于def,但是比def更轻巧,可以没有名字add_by_lambda = lambda x,y: x+y
print add_by_lambda(1, 1)
甚至还可以直接在后面追加实参来直接获取返回值,比如lambda x,y : x+y, 1, 1返回结果就是2
-------------------------------------
def add(x,y):
return x+y
print add(1, 1)
zip()
定义:zip([seql, ...])接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。
1 >>> z1=[1,2,3]
2 >>> z2=[4,5,6]
3 >>> result=zip(z1,z2)
zip()配合*号操作符,可以将已经zip过的列表对象解压,即将合并的序列拆成多个tuple.1 >>> zip(*result)
2 [(1, 2, 3), (4, 5, 6)]
与序列有关的内建函数有:sorted()、reversed()、enumerate()、zip()
sorted()和zip()返回一个序列(列表)对象
reversed()、enumerate()返回一个迭代器(类似序列)
场景:
* 二维矩阵变换(矩阵的行列互换)
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
zip(*a)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
map(list,zip(*a))
[[1, 4,