内置函数
绝对值 abs(-1)
最大值 max(1,2,3..)
转整数 int('123')
转小数 float('12.34')
转字符串 str(123)
转bool bool(p)
转16进制 hex(15)
转小写 lower()
添加元素 append(x)
检查类型 isinstance(x,(int,float)) isinstance('ABC',Iterable)
list转索引-元素对 enumerate(['A','B','C'])
列表生成式 list(range(1,11)) [x*x for x in range(1,11)] [x*x for x in range(1,11) if x%2==0] [m+n for m in 'ABC' for n in 'XYZ']
生成器 generator g=(x*x for x in range(1,11)) next(g)
自定义函数
必选参数、默认参数、可变参数、命名关键字参数、关键字参数
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
*args
是可变参数,args接收的是一个tuple;
**kw
是关键字参数,kw接收的是一个dict。
高级特性
凡是可作用于for
循环的对象都是Iterable
类型;
凡是可作用于next()
函数的对象都是Iterator
类型,它们表示一个惰性计算的序列;
函数式编程
map()
函数接收两个参数,一个是函数,一个是Iterable
,map
将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator
返回;
reduce()
把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数,reduce
把结果继续和序列的下一个元素做累积计算,
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)