Python 常用函数.docx

上传人:b****3 文档编号:4009928 上传时间:2022-11-27 格式:DOCX 页数:15 大小:44.22KB
下载 相关 举报
Python 常用函数.docx_第1页
第1页 / 共15页
Python 常用函数.docx_第2页
第2页 / 共15页
Python 常用函数.docx_第3页
第3页 / 共15页
Python 常用函数.docx_第4页
第4页 / 共15页
Python 常用函数.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Python 常用函数.docx

《Python 常用函数.docx》由会员分享,可在线阅读,更多相关《Python 常用函数.docx(15页珍藏版)》请在冰豆网上搜索。

Python 常用函数.docx

Python常用函数

Python函数

2016年4月14日

22:

07

 

1、join()函数

以下实例展示了join()的使用方法:

#!

/usr/bin/pythonstr="-";

seq=("a","b","c");#字符串序列

printstr.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(functionorNone,sequence)->list,tuple,orstring

给定一个'过滤函数'和一个对象的序列,每个序列元素都通过这个过滤器进行筛选,保留函数返回为真的对象.filter函数为已知的序列的每个元素调用给定布尔函数.每个filter返回的非零(true)值元素添加到一个列表中.

1

2

3

4

5

6

7

#!

/usr/bin/python2.5

fromrandomimportrandint

 allNums=[]

foreachNuminrange(10):

   allNums.append(randint(1,100))

printfilter(lambdax:

x%2,allNums)#使用filter()来移除所有偶数

1

2

root@10.1.6.200:

~#./getOdd.py

[89,45,41,29,5,29,85]

 

5、map(...)  

map(function,sequence[,sequence,...])->list

map()内建函数与filter()相似,因为它也能通过函数来处理序列,但map()将函数调用'映射'到每个序列的元素上,并返回一个含有所有返回值的列表。

 例如,映射函数是给每个进入的数字加10,并且将这个函数和一个数字的列表传给map().

1

2

>>>map(lambdax:

x+10,[0,1,2,3,4,5,6,7,8,9])

[10,11,12,13,14,15,16,17,18,19] 

>>>defadd100(x):

returnx+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

2

>>>print'thetotalis:

',reduce((lambdax,y:

x+y),range(1,11))

thetotalis:

55

 

源文档<

 

 

源文档<

 

7、multiply(x,y)返回x乘以y

np.multiply(2.0,4.0)=8.0

numpy.sign(x[,out])x可以是单个参数也可以是数组

Returnsanelement-wiseindicationofthesignofanumber.

Thesignfunctionreturns-1ifx<0,0ifx==0,1ifx>0.

Parameters:

        

x:

array_like

Inputvalues.

Returns:

        

y:

ndarray

Thesignofx.

Examples

>>>np.sign([-5.,4.5])

array([-1.,1.])

>>>np.sign(0)

0

 

8、urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%。

urldecode()函数与urlencode()函数原理相反,用于解码已编码的URL字符串,其原理就是把十六进制字符串转换为中文字符

Urlencode()函数的参数为字典

Urllib.quote()函数的参数为字符串

 

9、sys和操作系统相关的调用,系统相关的信息模块importsys 

   sys.argv是一个list,包含所有的命令行参数. 

   sys.stdoutsys.stdinsys.stderr分别表示标准输入输出,错误输出的文件对象. 

   sys.stdin.readline()从标准输入读一行sys.stdout.write("a")屏幕输出a 

   sys.exit(exit_code)退出程序 

   sys.modules是一个dictionary,表示系统中所有可用的module 

   sys.platform得到运行的操作系统环境 

   sys.path是一个list,指明所有查找module,package的路径. 

 

源文档<

 

10、文件操作 

   1、打开文件 

     f=open("filename","r")r只读w写rw读写rb读二进制wb写二进制w+写追加 

   2、读写文件 

     f.write("a")f.write(str)写一字符串f.writeline()f.readlines()与下read类同 

     f.read()全读出来f.read(size)表示从文件中读取size个字符 

     f.readline()读一行,到文件结尾,返回空串.f.readlines()读取全部,返回一个list.list每个元素表示一行,包含"\n"\ 

     f.tell()返回当前文件读取位置 

     f.seek(off,where)定位文件读写位置.off表示偏移量,正数向文件尾移动,负数表示向开头移动。

 

      where为0表示从开始算起,1表示从当前位置算,2表示从结尾算. 

     f.flush()刷新缓存 

   3、关闭文件 :

    f.close() 

 

源文档<

 

11、Itertools.groupby():

把迭代器中相邻的重复元素挑出来放在一起:

>>>forkey,groupinitertools.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:

>>>forkey,groupinitertools.groupby('AaaBBbcCAAa',lambdac:

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)以整行为排序目标

 

fromitertoolsimportgroupby

fromoperatorimportitemgetter

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))

forkey,itemsinsss:

printkey

forsubiteminitems:

printsubitem

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)

--------------------

 

源文档<

 

源文档<

 

12、itemgetter(dis)返回迭代器的第dis维的数据,dis为序号

fromoperatorimportitemgetter

a=[1,2,3] 

>>>b=operator.itemgetter

(1)   //定义函数b,获取对象的第1个域的值

>>>b(a) 

>>>b=operator.itemgetter(1,0) //定义函数b,获取对象的第1个域和第0个的值

>>>b(a) 

(2,1)

源文档<

 

13、format()格式化输出函数

Print("{0}\t{1}\n".format(qq,cnt))其中"{0}\t{1}\n"是格式化字符串,{0},{1}是占位符

1#使用str.format()函数

2

3#使用'{}'占位符

4print('I\'m{},{}'.format('Hongten','Welcometomyspace!

'))

5

6print('#'*40)

7

8#也可以使用'{0}','{1}'形式的占位符

9print('{0},I\'m{1},myE-mailis{2}'.format('Hello','Hongten','hongtenzone@'))

10#可以改变占位符的位置

11print('{1},I\'m{0},myE-mailis{2}'.format('Hongten','Hello','hongtenzone@'))

12

13print('#'*40)

14

15#使用'{name}'形式的占位符

16print('Hi,{name},{message}'.format(name='Tom',message='Howoldareyou?

'))

17

18print('#'*40)

19

20#混合使用'{0}','{name}'形式

21print('{0},I\'m{1},{message}'.format('Hello','Hongten',message='Thisisatestmessage!

'))

22

23print('#'*40)

24

25#下面进行格式控制

26importmath

27print('ThevalueofPIisapproximately{}.'.format(math.pi))

28print('ThevalueofPIisapproximately{!

r}.'.format(math.pi))

29print('ThevalueofPIisapproximately{0:

.3f}.'.format(math.pi))

30

31

32table={'Sjoerd':

4127,'Jack':

4098,'Dcab':

7678}

33forname,phoneintable.items():

34print('{0:

10}==>{1:

10d}'.format(name,phone))

35

36

37table={'Sjoerd':

4127,'Jack':

4098,'Dcab':

8637678}

38print('Jack:

{0[Jack]:

d};Sjoerd:

{0[Sjoerd]:

d};''Dcab:

{0[Dcab]:

d}'.format(table))

 

 

14、maketrans()方法语法:

fromstringimportmaketrans#引用maketrans函数。

str.maketrans(intab,outtab)

参数

∙intab--字符串中要替代的字符组成的字符串。

∙outtab--相应的映射字符的字符串。

 

15、translate()方法

根据参数table给出的表(包含256个字符)转换字符串的字符,要过滤掉的字符放到del参数中。

str.translate(table[,deletechars]);

∙table--翻译表,翻译表是通过maketrans方法转换而来。

∙deletechars--字符串中要过滤的字符列表。

 

以下实例展示了translate()函数的使用方法:

#!

/usr/bin/python

fromstringimportmaketrans#引用maketrans函数。

intab="aeiou"

outtab="12345"

trantab=maketrans(intab,outtab)

str="thisisstringexample....wow!

!

!

";

printstr.translate(trantab);

 

以上实例输出结果如下:

th3s3sstr3ng2x1mpl2....w4w!

!

!

 

以上实例去除字符串中的'x'和'm'字符:

#!

/usr/bin/python

fromstringimportmaketrans#Requiredtocallmaketransfunction.

intab="aeiou"

outtab="12345"

trantab=maketrans(intab,outtab)

str="thisisstringexample....wow!

!

!

";

printstr.translate(trantab,'xm');

 

以上实例输出结果:

th3s3sstr3ng21pl2....w4w!

!

!

 

源文档<

 

16、迭代器iterator

1)for循环可以用于Python中的任何类型,包括列表、元祖等等。

实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器(实现了迭代器协议的对象)。

任何这类的对象在Python中都可以用for循环或其他遍历工具迭代,迭代工具内部会在每次迭代时调用next方法,并且捕捉StopIteration异常来确定何时离开。

使用迭代器一个显而易见的好处就是:

每次只从对象中读取一条数据,不会造成内存的过大开销。

比如要逐行读取一个文件的内容,利用readlines()方法,我们可以这么写:

1

2

forlineinopen("test.txt").readlines():

printline

这样虽然可以工作,但不是最好的方法。

因为他实际上是把文件一次加载到内存中,然后逐行打印。

当文件很大时,这个方法的内存开销就很大了。

利用file的迭代器,我们可以这样写:

1

2

forlineinopen("test.txt"):

#usefileiterators

printline

这是最简单也是运行速度最快的写法,他并没显式的读取文件,而是利用迭代器每次读取下一行。

17、生产器constructor

包含yield语句的函数会被特地编译成生成器。

当函数被调用时,他们返回一个生成器对象,这个对象支持迭代器接口。

不像一般的函数会生成值后退出,生成器函数在生成值后会自动挂起并暂停他们的执行和状态,他的本地变量将保存状态信息,这些信息在函数恢复时将再度有效【不像return生成值后函数会退出,包含yield语句的函数会继续执行后续代码】

来看一个yield的例子,用生成器生成一个Fibonacci数列:

1

2

3

4

5

6

7

8

9

10

deffab(max):

a,b=0,1

whilea

yielda#返回a值,函数不退出

a,b=b,a+b

 

>>>foriinfab(20):

...printi,",",

...

0,1,1,2,3,5,8,13,

源文档<

 

2,内积:

np.dot(a,b)就可以来计算a,b的内积,同样的np.inner(a,b)也可以,但是它要求最后一维度是要相同的,np.outer(a,b)则是将数组 展平为一维数组 再进行计算。

3,求和,平均值,方差:

比较简单,分别是np.sum(),np.mean(),np.var(),np.std()(这个是标准差),关键是在加入axis参数以后要很好的区分;看下面的例子应该就比较清楚了:

4,最值和排序:

最值有np.max(),np.min()他们都有axis和out(输出)参数,而通过np.argmax(),np.argmin()可以得到取得最大或最小值时的 下标。

排序通过np.sort(),而np.argsort()得到的是排序后的数据原来位置的下标。

 

源文档<

 

18、Zip()

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。

1.示例1:

x=[1,2,3]

y=[4,5,6]

z=[7,8,9]

xyz=zip(x,y,z)

printxyz

运行的结果是:

[(1,4,7),(2,5,8),(3,6,9)]

2.示例2:

x=[1,2,3]

y=[4,5,6,7]

xy=zip(x,y)

printxy

运行的结果是:

[(1,4),(2,5),(3,6)]

5.示例5:

x=[1,2,3]

y=[4,5,6]

z=[7,8,9]

xyz=zip(x,y,z)

u=zip(*xyz)

printu

运行的结果是:

[(1,2,3),(4,5,6),(7,8,9)]

一般认为这是一个unzip的过程,它的运行机制是这样的:

在运行zip(*xyz)之前,xyz的值是:

[(1,4,7),(2,5,8),(3,6,9)]

那么,zip(*xyz)等价于zip((1,4,7),(2,5,8),(3,6,9))

所以,运行结果是:

[(1,2,3),(4,5,6),(7,8,9)]

源文档<

 

19、collections.defaultdict()

defaultdict(function_factory)构建的是一个类似dictionary的对象,其中指定了values的类型,是function_factory的类实例,而且具有默认值。

collections.defaultdict(list)使用起来效果和运用dict.setdefault(list)比较相似

源文档<

 

20、uniform()函数

uniform()方法将随机生成下一个实数,它在[x,y]范围内。

以下展示了使用uniform()方法的实例:

#!

/usr/bin/python

#-*-coding:

UTF-8-*-

importrandom

print"uniform(5,10)的随机数为:

",

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1