匿名函数:
lambda函数是一种快速定义单行的最小函数,是从Lisp借来用的,可以用在任何需要函数的地方;
例如:
l=range(1,6) //1~5相加
f=lambda x,y:x+y
print reduce(lambda x,y:x+y,l)
使用lambda函数应该注意的几点:
- lambda定义的是单行函数,如果需要复杂的函数,应该定义普通函数
- lambda参数列表可以包含多个参数,如 lambda x, y: x + y
- lambda中的表达式不能含有命令,而且只限一条表达式
switch语句:
switch语句用于编写多分支结构的程序,类似与if...elif...else语句;
switch语句表达的分支结构比if...elif...else语句表达的更清晰,代码的可读性更高
备注:python本身是没有switch语句的,只能通过字典实现switch语句的功能。
例如:
operator={'+':jia,'-':jian,'*':cheng,'/':chu}
def f(x,o,y):
operator.get(o)(x,y)
f(3,'*',2)
内置函数
一、数学相关
1、绝对值:abs(-1)
2、最大最小值:max([1,2,3])、min([1,2,3])
3、序列长度:len('abc')、len([1,2,3])、len((1,2,3))
4、取模:divmod(5,2)//(2,1)
5、乘方:pow(2,3,4)//2**3/4
6、浮点数:round(1)//1.0
二、功能相关
1、函数是否可调用:callable(funcname),注意,funcname变量要定义过
2、类型判断:isinstance(x,list/int)
3、比较:cmp('hello','hello')
4、快速生成序列:
range(10)->[0,1,2,3,4,5,6,7,8,9]
(x)range([start,] stop[, step]):xrange生成的不是一个数组,而是一个生成器
三、类型转换
0、type(x):获取x的类型
1、int(x):将x转化为int类型
2、long(x)
3、float(x)
4、complex(x) //复数
5、str(x)
6、list(x)
7、tuple(x) //元组
8、hex(x)
9、oct(x)
10、chr(x)//返回x对应的字符,如chr(65)返回‘A'
11、ord(x)//返回字符对应的ASC码数字编号,如ord('A')返回65
字符串处理:
str.capitalize():返回字符串的一个副本,只有它的第一个字母大写
语法:str.capitalize()
s='hello world' s.capitalize()->'Hello world'
str.replace():把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次
语法:str.replace(old, new[, max])
ss='123123123123' ss.replace('1','x',3)->'x23x23x23123'
str.split():通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串
语法:str.split(str="", num=string.count(str))
str = "Line1-abcdef Line2-abc Line4-abcd";
print str.split( ) ->['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
print str.split(' ', 1 );['Line1-abcdef', ' Line2-abc Line4-abcd']
序列处理函数:
len():获取长度
max():获取最大值
min():获取最小值
filter():对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果做过滤
s=range(10) def fx(x):if(x)>5:return True filter(fx,s)->[6, 7, 8, 9]
zip():它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)
name=['milo','zou','tom'] age=[20,30,40] zip(name,age)->[('milo', 20), ('zou', 30), ('tom', 40)]
map():map(function, sequence),作用是将一个列表映射到另一个列表
name=['milo','zou','tom'] age=[20,30,40] map(None,name,age)->[('milo', 20), ('zou', 30), ('tom', 40)]
reduce():reduce(function, sequence, startValue),作用是将一个列表归纳为一个输出
def add(x,y):return x+y print reduce(add,range(1,101))