本文档如对你有帮助,请帮忙下载支持!
Python 函数
2016年4月14日 22:07
1、join()函数
以下实例展示了join()的使用方法: #!/usr/bin/pythonstr = \; seq = (\, \, \); # 字符串序列 print str.join( seq );
以上实例输出结果如下: a-b-c
2、str.zfill(width)
将字符串str前面补0使得字符串长度为width 3、lambda函数(匿名函数) a. lambda表达式返回可调用的函数对象.但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量. b. lambda 它只是一个表达式,而def是一个语句 c. 定义一些抽象的,不会别的地方再复用的函数 d. lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值
定义了一个lambda表达式,求三个数的和。 用lambda表达式求n的阶乘。
这里也可以把def直接写成lambda形式。如下
lambda函数可以很好和python中内建filter(),map(),reduce()函数的应用程序结合起来,因为它们都带了一个可执行的函数对象. 4、filter(function or None, sequence) -> list, tuple, or string
给定一个'过滤函数'和一个对象的序列,每个序列元素都通过这个过滤器进行筛选,保留函数返回为真的对象.filter函数为已知的序列的每个元素调用给定布尔函数.每个filter返回的非零(true)值元素添加到一个列表中.
1 #!/usr/bin/python2.5
2 from random import randint 3
本文档如对你有帮助,请帮忙下载支持!
4 5 6 7
allNums = []
for eachNum in range(10):
allNums.append(randint(1,100))
print filter(lambda x: x%2,allNums) #使用filter()来移除所有偶数
1 root@ ./getOdd.py 2 [89, 45, 41, 29, 5, 29, 85]
5、map(...)
map(function, sequence[, sequence, ...]) -> list
map()内建函数与filter()相似,因为它也能通过函数来处理序列,但map()将函数调用'映射'到每个序列的元素上,并返回一个含有所有返回值的列表。
例如,映射函数是给每个进入的数字加10,并且将这个函数和一个数字的列表传给map().
1 >>> map(lambda x:x+10,[0,1,2,3,4,5,6,7,8,9]) 2 [10, 11, 12, 13, 14, 15, 16, 17, 18, 19] >>> def add100(x): …
return x+100 ... >>> hh = [11,22,33] >>> map(add100,hh) [111, 122, 133]
6、reduce(...) reduce(function, sequence[, initial]) -> value
它通过取出序列的头两个元素.将他们传入二元函数来获得一个单一的值来实现.然后又用这个值和序列的下一个元素来获得又一个值,然后继续直到整个序列的内容都遍历完毕以后最后的值会被计算出来为止.
reduce(func,[1,2,3]) 等同于 func(func(1,2),3)
例如:计算从1加到10的和
1 >>> print 'the total is:',reduce((lambda x,y:x+y),range(1,11)) 2 the total is: 55
源文档
源文档
7、multiply(x,y)返回x乘以y
本文档如对你有帮助,请帮忙下载支持!
np.multiply(2.0, 4.0)=8.0
numpy.sign(x[, out]) x可以是单个参数也可以是数组 Returns an element-wise indication of the sign of a number. The sign function returns -1 if x < 0, 0 if x==0, 1 if x > 0. Parameters: x : array_like Input values. Returns: y : ndarray The sign of x. Examples
>>> np.sign([-5., 4.5]) array([-1., 1.]) >>> np.sign(0) 0
8、urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%。
urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原理就是把十六进制字符串转换为中文字符 Urlencode()函数的参数为字典 Urllib.quote()函数的参数为字符串
9、sys和操作系统相关的调用,系统相关的信息模块 import sys sys.argv是一个list,包含所有的命令行参数.
sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象.
从标准输入读一行 \屏幕输出a sys.exit(exit_code) 退出程序
sys.modules 是一个dictionary,表示系统中所有可用的module sys.platform 得到运行的操作系统环境
sys.path 是一个list,指明所有查找module,package的路径.
源文档 <--id-3352833.html>
10、文件操作 1、打开文件
本文档如对你有帮助,请帮忙下载支持!
f = open(\只读 w写 rw读写 rb读二进制 wb写二进制 w+写追加 2、读写文件
f.write(\写一字符串 f.writeline() f.readlines() 与下read类同
f.read() 全读出来 f.read(size) 表示从文件中读取size个字符 f.readline() 读一行,到文件结尾,返回空串. f.readlines() 读取全部,返回一个list. list每个元素表示一行,包含\ f.tell() 返回当前文件读取位置
f.seek(off, where) 定位文件读写位置. off表示偏移量,正数向文件尾移动,负数表示向开头移动。
where为0表示从开始算起,1表示从当前位置算,2表示从结尾算.
f.flush() 刷新缓存
3、关闭文件 : f.close()
源文档 <--id-3352833.html>
11、Itertools.groupby() :把迭代器中相邻的重复元素挑出来放在一起:
>>> for key, group in itertools.groupby('AAABBBCCAAA'): ... print(key, list(group)) ...
A ['A', 'A', 'A'] B ['B', 'B', 'B'] C ['C', 'C'] A ['A', 'A', 'A']
实际上挑选规则是通过函数完成的,只要作用于函数的两个元素返回的值相等,这两个元素就被认为是在一组的,而函数返回值作为组的key。如果我们要忽略大小写分组,就可以让元素'A'和'a'都返回相同的key:
>>> for key, group in itertools.groupby('AaaBBbcCAAa', lambda c: c.upper()): ... print(key, list(group)) ...
A ['A', 'a', 'a'] B ['B', 'B', 'b'] C ['c', 'C'] A ['A', 'A', 'a']
? ? ? groupby(things, itemgetter(0)) 以第0列为排序目标 groupby(things, itemgetter(1))以第1列为排序目标 groupby(things)以整行为排序目标
from itertools import groupby from operator import itemgetter
本文档如对你有帮助,请帮忙下载支持!
things = [('2009-09-02', 11), ('2009-09-02', 3), ('2009-09-03', 10), ('2009-09-03', 4), ('2009-09-03', 22), ('2009-09-06', 33)]
sss = groupby(things, itemgetter(0)) for key, items in sss: print key
for subitem in items: print subitem print '-' * 20 结果 1 2 3 4 5 6 7 8 9 10 11 12 13
>>>
2009-09-02
('2009-09-02', 11) ('2009-09-02', 3) -------------------- 2009-09-03
('2009-09-03', 10) ('2009-09-03', 4) ('2009-09-03', 22) -------------------- 2009-09-06
('2009-09-06', 33) --------------------
源文档
源文档 00143a6b348958f449949df42a6d3a2e542c000/0035cfdd1a541a18ddc15059e3ddeec000>
12、itemgetter(dis)返回迭代器的第dis维的数据,dis为序号
from operator import itemgetter a = [1,2,3]
>>> b=operator.itemgetter(1) //定义函数b,获取对象的第1个域的值 >>> b(a) 2
>>> b=operator.itemgetter(1,0) //定义函数b,获取对象的第1个域和第0个的值 >>> b(a) (2, 1)
源文档
13、format()格式化输出函数
Print (\其中\是格式化字符串,{0},{1}是占位符
1 #使用str.format()函数 2
3 #使用'{}'占位符
4 print('I\\'m {},{}'.format('Hongten','Welcome to my space!')) 5
6 print('#' * 40) 7
8 #也可以使用'{0}','{1}'形式的占位符
9 print('{0},I\\'m {1},my E-mail is {2}'.format('Hello','Hongten',''))