python常用内置函数使用

基础小函数、字符串函数、序列函数

序列、元组、列表小函数

max() 求最大值(列表、元组、序列)
min() 求最小值
len() 求长度

>>> a = [1,2,3,4]
>>> max(a)
4
>>> min(a)
1
>>> len(a)
4
>>>

运算小函数
divmod() 求运算模,返回一个元组,第一个参数是商,第二个是余数
pow(x,y) 指数运算,x的y次方
pow(x,y,z) x的y次方,在与z取模
round() 浮点数

>>> a = 3
>>> b = 4
>>> divmod(a,b)
(0, 3)
>>> divmod(b,a)
(1, 1)
>>> pow(a,b)
81
>>> pow(a,b,8)
1
>>>
>>> a/b
0.75
>>> round(a/b)
1
>>> round(a/b,2)
0.75
>>> round(a/b,4)
0.75
>>>

其它小函数
callable() 测试函数是否可被调用
isinstance(l,list) 测试l是否是一个list

>>> def f(x):
	pass

>>> callable(fc)
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    callable(fc)
NameError: name 'fc' is not defined
>>> callable(f)
True
>>>
>>> l = [1,2,3,4]
>>> t = (2,3,4,5)
>>> s = 'hello'
>>> isinstance(l,list)
True
>>> isinstance(t,tuple)
True
>>> isinstance(s,str)
True
>>> isinstance(l,str)
False

字符串函数

str.capitalize() 首字母大写
str.replace('x','y',count) 字符串替换 count 替换几次
str.split(“”,sep) 将字符串转换为列表,用“”切割,sep切割几次

>>> str1 = 'hello world , today is very good day'
>>> str1.capitalize()
'Hello world , today is very good day'
>>> str1
'hello world , today is very good day'
>>> str1.replace('o','9',1)
'hell9 world , today is very good day'
>>> str1.replace('o','9',3)
'hell9 w9rld , t9day is very good day'
>>> str1.replace('o','9')
'hell9 w9rld , t9day is very g99d day'
>>>
>>> ip = '192.168.1.254'
>>> ip.split(".")
['192', '168', '1', '254']
>>> ip.split(".",1)
['192', '168.1.254']
>>>

序列函数

filter() 过滤函数
filter(f,l) 将l列表中的值传给函数f进行判断,保留满足要求的数值 函数return True

zip() 将两个列表的值进行对应,以元组存放在列表中。以最短的为组合数

map(None,a,b) 将列表a、b的值对应起来传给None函数,None可以作为函数

fc(x,y)
reduce(fc,list) 将列表list的值依次传输给函数fc

>>> def f(x):
	if x>5:
		return True


>>> l = [1,2,3,5,6,2,3,6,7,8]
>>> filter(f,l)
<filter object at 0x00000220AC4C95E0>
>>> list(filter(f,l))
[6, 6, 7, 8]
>>>
>>> name = ['zhang','li','wang','zhou']
>>> age = [22,21,23,24]
>>> list(zip(name,age))
[('zhang', 22), ('li', 21), ('wang', 23), ('zhou', 24)]
>>> city = ['beijing','shanxi','*']
>>> list(zip(name,age,city))
[('zhang', 22, 'beijing'), ('li', 21, 'shanxi'), ('wang', 23, '*')]
>>>
>>> def f(name,age):
	return name,age

>>> list(map(f,name,age))
[('zhang', 22), ('li', 21), ('wang', 23), ('zhou', 24)]
>>>
>>> def f(x,y):
	return x+y

>>> a = [1,2,3,4]
>>> b = [1,2,3,4]
>>> list(map(f,a,b))
[2, 4, 6, 8]
>>>
>>>
>>> l = range(100)
>>> reduce(f,l)
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    reduce(f,l)
NameError: name 'reduce' is not defined
>>>
>>> from functools import reduce
>>> reduce(f,l)
4950
>>> l = range(101)
>>> reduce(f,l)
5050
>>>
>>>

使用reduce时需要导入相应的模块。

reduce用来计算阶乘很方便。根据reduce,可以写成一行代码来。

>>> n = 101
>>> range(n)
range(0, 101)
>>> reduce(lambda x,y:x+y , l)
5050
>>>

+修改为*,就是求n的阶乘了。不对n-1的阶乘。

小例子动手写一下,印象更深刻。


读书和健身总有一个在路上

上一篇:This is very likely to create a memory leak Stack trace of


下一篇:Global Sparse Momentum SGD for Pruning Very Deep Neural Networks 论文阅读笔记