什么是lambda函数,中文名叫匿名函数?
在你需要的时候采才去定义它,函数形式如下:
lambda 参数列表 : 表达式
lambda x,y:x*y
lambda x: x*2
但是这个不行 lambda x: x=x+2 不行,因为不是表达式
函数式编程的思想,把所有的函数就当做对象一样看待,而lambda函数也一样,
g = lambda x: x*2
此时g就相当于函数
def g(x):
return x*2
那么lambda函数在那可以使用呢?如下一些小函数不需要重用,如果只用一次,而且这个函数可以用一个表达式来表示,那么就可以用lambda函数,当然你也可以不这么干。
分割与合并字符串:join 和 split
如下:
li = ['1','2','3']
s = "+".join(li)
///s= '1+2+3'
你会发现split和join不仅仅是逻辑上看起来不同,而且连参数的调用方式也是相反的
s = '1+2+3'
t = s.split('+')
///t = ['1','2','3']
and-or 技巧
c中 bool? a:b 含义是当bool为真时,则计算为a的值,否则计算b的值,python怎么做呢?
a = "first"
b = "second"
s = 1 and a or b
///s = 'first'
s = 0 and a or b
///s = 'second'
尽管如此,但是python语法中对于bool? a:b并不是总是和你想象的一样,如下:
a = " "
b = "second"
s = 1 and a or b
///s = "second"
这个是python中的一个诡计,所以当a为假时,记住不是你想要的值,a = " " 或者 a = 0,都会认为a是假的,但是如果把a放入列表中,则不然,所以可以这么干,如下:
a = ""
b = "second"
s = (1 and [a] or [b])[0]
///s = " "
当然负责人的程序员会把这个封装至函数内,如下:
def choose(bool, a, b):
return (1 and [a] or [b])[0]
python常用的函数:
首先类型转换:
1 函数 描述 2 int(x [,base ]) 将x转换为一个整数 3 long(x [,base ]) 将x转换为一个长整数 4 float(x ) 将x转换到一个浮点数 5 complex(real [,imag ]) 创建一个复数 6 str(x ) 将对象 x 转换为字符串 7 repr(x ) 将对象 x 转换为表达式字符串 8 eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象 9 tuple(s ) 将序列 s 转换为一个元组 10 list(s ) 将序列 s 转换为一个列表 11 chr(x ) 将一个整数转换为一个字符 12 unichr(x ) 将一个整数转换为Unicode字符 13 ord(x ) 将一个字符转换为它的整数值 14 hex(x ) 将一个整数转换为一个十六进制字符串 15 oct(x ) 将一个整数转换为一个八进制字符串
序列中常用的函数:
1 操作 描述 2 s + r 序列连接 3 s * n , n * s s的 n 次拷贝,n为整数 4 s % d 字符串格式化(仅字符串) 5 s[i] 索引 6 s[i :j ] 切片 7 x in s , x not in s 从属关系 8 for x in s : 迭代 9 len(s) 长度 10 min(s) 最小元素 11 max(s) 最大元素 12 s[i ] = x 为s[i]重新赋值 13 s[i :j ] = r 将列表片段重新赋值 14 del s[i ] 删除列表中一个元素 15 del s[i :j ] 删除列表中一个片段
数值操作:
1 x << y 左移 2 x >> y 右移 3 x & y 按位与 4 x | y 按位或 5 x ^ y 按位异或 (exclusive or) 6 ~x 按位翻转 7 x + y 加 8 x - y 减 9 x * y 乘 10 x / y 常规除 11 x // y 地板除 12 x ** y 乘方 (xy ) 13 x % y 取模 (x mod y ) 14 -x 改变操作数的符号位 15 +x 什么也不做 16 ~x ~x=-(x+1) 17 abs(x ) 绝对值 18 divmod(x ,y ) 返回 (int(x / y ), x % y ) 19 pow(x ,y [,modulo ]) 返回 (x ** y ) x % modulo 20 round(x ,[n]) 四舍五入,n为小数点位数 21 x < y 小于 22 x > y 大于 23 x == y 等于 24 x != y 不等于(与<>相同) 25 x >= y 大于等于 26 x <= y 小于等于
python中list和tuple如何相互转换:
l1 = [1,2,3,4]
l2 = tuple(l1)
///l2 = (1,2,3,4)
l1 = (1,2,3,4)
l2 = list(l1)
///l2 = [1,2,3,4]
list如何去重,如下:
l1 = [1,2,3,4,1]
l2 = list(set(l1))
///l2 = [1,2,3,4]
tuple也一样