2018-11-30 08:09:28
借鉴文档
2.0-2.4内建函数
- print(dir(builtin)) 可以看到所有的内建函数
常用内建函数
- abs() 取绝对值
- max() 取序列的最大值
- min() 取序列的最小值
- len() 取长度
- divmod(x,y) 返回一个元组((x-x%y)/y, x%y)
- pow(x,y[,z]) 返回一个数字(x**y) % z
- round() 返回一个浮点数
- callable() 返回一个bool,判断一个对象是否可调用
- type() 查看类型
- isinstance() 返回一个bool,判断一个对象是不是给定的类型
- cmp() 返回1,0,-1 比较两个数,可以是数值、字符串、
- rangge() 返回一个列表
- xrange() 返回一个对象
类型转换函数
- int() 转换成int类型
- long() 转换成long类型
- flot() 转换成flot类型
- complex() 转换成复数类型
- str() 转换成str类型
- list() 转换成list类型
- tuple() 转换成元组类型
- hex() 转换成16进制类型
- oct() 转换成8进制类型
- chr(i) 转换成一个字符类型,0<=i<=255,每个数字对应一个ascii字符
- ord() 转换成int类型,与chr()相反
- eval() 将字符串当成有效的表达式来求值,就是去掉字符串""
字符串处理函数(字符串处理方法)
- str.capitalize() 返回字符串并且首字母大写
- str.replace(old,new) 替换字符串old–>new
- str.split() 返回一个列表,按规定分割字符串
- str.join(可迭代对象i) 字符串连接,对i中每个元素迭代,迭代之后的元素必须是字符串,然后将str放在各个迭代后的元素中间
--------------------------------------------
In [4]: a = '12'
In [5]: a.join('abcd')
Out[5]: 'a12b12c12d'
-------------------------------------------
In [7]: ''.join(str(i) for i in range(10))
Out[7]: '0123456789'
--------------------------------------------
In [8]: ' '.join(str(i) for i in range(10))
Out[8]: '0 1 2 3 4 5 6 7 8 9'
--------------------------------------------
In [10]: int(''.join(str(i) for i in range(10)))
Out[10]: 123456789
- string模块 可以直接调用字符串的处理函数
In [11]: import string
In [12]: string.capitalize('hello')
Out[12]: 'Hello'
序列处理函数、方法
- filter(function or None, sequence) 过滤 -> list, tuple, or string
如果第一个参数是none,则序列不做处理
如果第一个参数是function,则将序列进行function处理
In [17]: def fun(x):
...: if x % 2 == 0:
...: return True
...:
In [18]: filter(fun,range(10))
Out[18]: [0, 2, 4, 6, 8]
- zip(seq1 [, seq2 […]]) -> [(seq1[0], seq2[0] …), (…)]
将一个或多个序列进行处理,返回一个大的列表,列表内的多个元素是元组
In [19]: l1 = [1,2,3]
In [20]: l2 = ['a','b']
In [21]: zip(l1,l2)
Out[21]: [(1, 'a'), (2, 'b')]
In [22]: l3 = ['a','b','c']
In [23]: zip(l1,l3)
Out[23]: [(1, 'a'), (2, 'b'), (3, 'c')]
In [24]: l3 = ['a','b','']
In [25]: zip(l1,l3)
Out[25]: [(1, 'a'), (2, 'b'), (3, '')]
- map(function, sequence[, sequence, …]) -> list
In [27]: l1 = [1,2,3]
In [28]: l3 = ['a','b']
In [29]: map(None,l1,l3)
Out[29]: [(1, 'a'), (2, 'b'), (3, None)]
-------------------------------------------------------
In [30]: def fun(x):
...: return x**2
...:
In [31]: map(fun,l1)
Out[31]: [1, 4, 9]
--------------------------------------------------------
In [32]: l1 = [1,2,3]
In [33]: l2 = [4,5,6]
In [34]: def fun(x,y):
...: return x+y
...:
In [35]: map(fun,l1,l2)
Out[35]: [5, 7, 9]
--------------------------------------------------------
In [45]: map(fun,[int(i) for i in range(5)],[int(j) for j in range(5)])
Out[45]: [0, 2, 4, 6, 8]
----------------------------------------------------------------
In [46]: map(fun,[int(i) for i in range(5)],[int(j) for j in range(4)])
TypeError Traceback (most recent call last)
<ipython-input-46-38dc053e285a> in <module>()
----> 1 map(fun,[int(i) for i in range(5)],[int(j) for j in range(4)])
<ipython-input-34-6f5ab76c45a4> in fun(x, y)
1 def fun(x,y):
----> 2 return x+y
3
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
注:两个序列中的元素个数要一致,少了会报错
- reduce()
In [49]: reduce(lambda x,y: x+y,range(5))
Out[49]: 10
列表表达式
In [52]: [i for i in range(5)]
Out[52]: [0, 1, 2, 3, 4]
In [53]: [i+2 for i in range(5)]
Out[53]: [2, 3, 4, 5, 6]
- int() 转换成int类型
- long() 转换成long类型
- flot() 转换成flot类型
- complex() 转换成复数类型
- str() 转换成str类型
- list() 转换成list类型
- tuple() 转换成元组类型
- hex() 转换成16进制类型
- oct() 转换成8进制类型
- chr(i) 转换成一个字符类型,0<=i<=255,每个数字对应一个ascii字符
- ord() 转换成int类型,与chr()相反
- eval() 将字符串当成有效的表达式来求值,就是去掉字符串""
字符串处理函数(字符串处理方法)
- str.capitalize() 返回字符串并且首字母大写
- str.replace(old,new) 替换字符串old–>new
- str.split() 返回一个列表,按规定分割字符串
- str.join(可迭代对象i) 字符串连接,对i中每个元素迭代,迭代之后的元素必须是字符串,然后将str放在各个迭代后的元素中间
--------------------------------------------
In [4]: a = '12'
In [5]: a.join('abcd')
Out[5]: 'a12b12c12d'
-------------------------------------------
In [7]: ''.join(str(i) for i in range(10))
Out[7]: '0123456789'
--------------------------------------------
In [8]: ' '.join(str(i) for i in range(10))
Out[8]: '0 1 2 3 4 5 6 7 8 9'
--------------------------------------------
In [10]: int(''.join(str(i) for i in range(10)))
Out[10]: 123456789
- string模块 可以直接调用字符串的处理函数
In [11]: import string
In [12]: string.capitalize('hello')
Out[12]: 'Hello'
序列处理函数、方法
- filter(function or None, sequence) 过滤 -> list, tuple, or string
如果第一个参数是none,则序列不做处理
如果第一个参数是function,则将序列进行function处理
In [17]: def fun(x):
...: if x % 2 == 0:
...: return True
...:
In [18]: filter(fun,range(10))
Out[18]: [0, 2, 4, 6, 8]
- zip(seq1 [, seq2 […]]) -> [(seq1[0], seq2[0] …), (…)]
将一个或多个序列进行处理,返回一个大的列表,列表内的多个元素是元组
In [19]: l1 = [1,2,3]
In [20]: l2 = ['a','b']
In [21]: zip(l1,l2)
Out[21]: [(1, 'a'), (2, 'b')]
In [22]: l3 = ['a','b','c']
In [23]: zip(l1,l3)
Out[23]: [(1, 'a'), (2, 'b'), (3, 'c')]
In [24]: l3 = ['a','b','']
In [25]: zip(l1,l3)
Out[25]: [(1, 'a'), (2, 'b'), (3, '')]
- map(function, sequence[, sequence, …]) -> list
In [27]: l1 = [1,2,3]
In [28]: l3 = ['a','b']
In [29]: map(None,l1,l3)
Out[29]: [(1, 'a'), (2, 'b'), (3, None)]
-------------------------------------------------------
In [30]: def fun(x):
...: return x**2
...:
In [31]: map(fun,l1)
Out[31]: [1, 4, 9]
--------------------------------------------------------
In [32]: l1 = [1,2,3]
In [33]: l2 = [4,5,6]
In [34]: def fun(x,y):
...: return x+y
...:
In [35]: map(fun,l1,l2)
Out[35]: [5, 7, 9]
--------------------------------------------------------
In [45]: map(fun,[int(i) for i in range(5)],[int(j) for j in range(5)])
Out[45]: [0, 2, 4, 6, 8]
----------------------------------------------------------------
In [46]: map(fun,[int(i) for i in range(5)],[int(j) for j in range(4)])
TypeError Traceback (most recent call last)
<ipython-input-46-38dc053e285a> in <module>()
----> 1 map(fun,[int(i) for i in range(5)],[int(j) for j in range(4)])
<ipython-input-34-6f5ab76c45a4> in fun(x, y)
1 def fun(x,y):
----> 2 return x+y
3
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
注:两个序列中的元素个数要一致,少了会报错
- reduce()
In [49]: reduce(lambda x,y: x+y,range(5))
Out[49]: 10
列表表达式
In [52]: [i for i in range(5)]
Out[52]: [0, 1, 2, 3, 4]
In [53]: [i+2 for i in range(5)]
Out[53]: [2, 3, 4, 5, 6]
--------------------------------------------
In [4]: a = '12'
In [5]: a.join('abcd')
Out[5]: 'a12b12c12d'
-------------------------------------------
In [7]: ''.join(str(i) for i in range(10))
Out[7]: '0123456789'
--------------------------------------------
In [8]: ' '.join(str(i) for i in range(10))
Out[8]: '0 1 2 3 4 5 6 7 8 9'
--------------------------------------------
In [10]: int(''.join(str(i) for i in range(10)))
Out[10]: 123456789
In [11]: import string
In [12]: string.capitalize('hello')
Out[12]: 'Hello'
- filter(function or None, sequence) 过滤 -> list, tuple, or string
如果第一个参数是none,则序列不做处理
如果第一个参数是function,则将序列进行function处理
In [17]: def fun(x):
...: if x % 2 == 0:
...: return True
...:
In [18]: filter(fun,range(10))
Out[18]: [0, 2, 4, 6, 8]
- zip(seq1 [, seq2 […]]) -> [(seq1[0], seq2[0] …), (…)]
将一个或多个序列进行处理,返回一个大的列表,列表内的多个元素是元组
In [19]: l1 = [1,2,3]
In [20]: l2 = ['a','b']
In [21]: zip(l1,l2)
Out[21]: [(1, 'a'), (2, 'b')]
In [22]: l3 = ['a','b','c']
In [23]: zip(l1,l3)
Out[23]: [(1, 'a'), (2, 'b'), (3, 'c')]
In [24]: l3 = ['a','b','']
In [25]: zip(l1,l3)
Out[25]: [(1, 'a'), (2, 'b'), (3, '')]
- map(function, sequence[, sequence, …]) -> list
In [27]: l1 = [1,2,3]
In [28]: l3 = ['a','b']
In [29]: map(None,l1,l3)
Out[29]: [(1, 'a'), (2, 'b'), (3, None)]
-------------------------------------------------------
In [30]: def fun(x):
...: return x**2
...:
In [31]: map(fun,l1)
Out[31]: [1, 4, 9]
--------------------------------------------------------
In [32]: l1 = [1,2,3]
In [33]: l2 = [4,5,6]
In [34]: def fun(x,y):
...: return x+y
...:
In [35]: map(fun,l1,l2)
Out[35]: [5, 7, 9]
--------------------------------------------------------
In [45]: map(fun,[int(i) for i in range(5)],[int(j) for j in range(5)])
Out[45]: [0, 2, 4, 6, 8]
----------------------------------------------------------------
In [46]: map(fun,[int(i) for i in range(5)],[int(j) for j in range(4)])
TypeError Traceback (most recent call last)
<ipython-input-46-38dc053e285a> in <module>()
----> 1 map(fun,[int(i) for i in range(5)],[int(j) for j in range(4)])
<ipython-input-34-6f5ab76c45a4> in fun(x, y)
1 def fun(x,y):
----> 2 return x+y
3
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
注:两个序列中的元素个数要一致,少了会报错
- reduce()
In [49]: reduce(lambda x,y: x+y,range(5))
Out[49]: 10
列表表达式
In [52]: [i for i in range(5)]
Out[52]: [0, 1, 2, 3, 4]
In [53]: [i+2 for i in range(5)]
Out[53]: [2, 3, 4, 5, 6]
In [52]: [i for i in range(5)]
Out[52]: [0, 1, 2, 3, 4]
In [53]: [i+2 for i in range(5)]
Out[53]: [2, 3, 4, 5, 6]