python常用函数总结

1.strip()去掉字符串头尾指定字符(默认为空格)

str.strip([chars]);     去掉str头尾的chars

2.split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串

str.split(str="", num=string.count(str))

  • str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num -- 分割次数

3.列表的append()和extend()

>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a.append(b)
>>> print a

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

  append()方法为列表尾部添加一个新元素

>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a.append(b)
>>> print a
[1, 2, 3, 4, 5, 6]

  extend()方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中

4.读文件的read(),readline(),readlines()

read()方法:读取整个文件,将文件内容放到一个变量中;如果文件大于可用内存,不能使用此方法。

>>> fr=open('lenses.txt')
>>> a=fr.read()
>>> print a
young myope no normal soft
young myope yes reduced no lenses
young myope yes normal hard
......
>>> type(a)
<type 'str'>

readline()方法:readline()每次读取一行,比readlines()慢很多;readline()返回的是一个字符串对象,保存当前行的内容。

>>> fr=open('lenses.txt')
>>> line=fr.readline()
>>> print line
young	myope	no	reduced	no lenses
>>> type(line)
<type 'str'>

readlines()方法:一次性读取整个文件;自动将内容划分成一个含有多个列表的列表,每一行为一个列表

fr=open('lenses.txt')
>>> lines=fr.readlines()
>>> for line in lines:
...         print line

young myope no reduced no lenses

young myope no normal soft

young myope yes reduced no lenses

......

>>> type(lines)
<type 'list'>

 6.正则表达式和string.split()切分句子

使用split()切分句子:

>>> mysent='this book is the best book on python or m.l. i have ever laid eyes upon.'
>>> mysent.split()

['this', 'book', 'is', 'the', 'best', 'book', 'on', 'python', 'or', 'm.l., 'i', 'have', 'ever', 'laid', 'eyes', 'upon.']

 此时,标点符号也呗当做词的一部分。

使用正则表达式切分句子:

>>> mysent='this book is the best book on python or m.l. i have ever laid eyes upon'
>>> regEx=re.compile('\\W*')
>>> list=regEx.split(mysent)
>>> list
['this', 'book', 'is', 'the', 'best', 'book', 'on', 'python', 'or', 'm', 'l', 'i', 'have', 'ever', 'laid', 'eyes', 'upon']

 7.pickle模块

使用pickle模块存储决策树

def storeTree(inputTree,filename):
	import pickle
	fw=open(filename,'w')
	#将python对象序列化保存到本地
	pickle.dump(inputTree,fw)
	fw.close()
def grabTree(filename):
	import pickle
	fr=open(filename)
	#加入本地文件,恢复python对象
	return pickle.load(fr)

  8.feedparser模块

feedparser 号称是一个 universal feed parser,使用它我们可轻松地实现从任何 RSS 或 Atom 订阅源得到标题、链接和文章的条目。

RSS是RDF Site Summary 的缩写(RDF是Resource Description Framework的缩写 ),是指将网站摘要用xml语言描述。

安装feedparser之前先先安装setuptool:

下载

sudo wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefe74e
解压
sudo tar zxvf setuptools-0.6c11.tar.gz
编译和安装
sudo wget https://bootstrap.pypa.io/ez_setup.py

 

安装feedparser:

下载:

sudo wget https://pypi.python.org/packages/source/f/feedparser/feedparser-5.1.3.tar.gz#md5=f2253de78085a1d5738f626fcc1d8f71 --no-check-certificate

解压

sudo tar zxvf feedparser-5.1.3.tar.gz

进入feedparser-5.1.3目录下:cd feedparser-5.1.3

在当前目录下执行:python setup.py install

 

 9.random()函数总结

随机整数:
>>> import random
>>> random.randint(0,99)
21

随机选取0到100间的偶数:
>>> import random
>>> random.randrange(0, 101, 2)
42

随机浮点数:
>>> import random
>>> random.random() 
0.85415370477785668
>>> random.uniform(1, 10)
5.4221167969800881

随机字符:
>>> import random
>>> random.choice('abcdefg&#%^*f')
'd'

多个字符中选取特定数量的字符:
>>> import random
random.sample('abcdefghij',3) 
['a', 'd', 'b']

多个字符中选取特定数量的字符组成新字符串:
>>> import random
>>> import string
>>> string.join(random.sample(['a','b','c','d','e','f','g','h','i','j'], 3)).r
eplace(" ","")
'fih'

随机选取字符串:
>>> import random
>>> random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )
'lemon'

洗牌:
>>> import random
>>> items = [1, 2, 3, 4, 5, 6]
>>> random.shuffle(items)
>>> items
[3, 2, 5, 6, 4, 1]

 9.np.random()函数总结 

 

>>> import numpy as np
>>> np.random.rand(2,3)
array([[ 0.68950928,  0.03283966,  0.47028051],
       [ 0.37143456,  0.97159103,  0.59014986]])
#np.random.uniform(low,high,size)
>>> np.random.uniform(1,4,2)
array([ 1.8773977 ,  2.43266306])
>>> np.random.uniform(1,4,1)
array([ 1.84577045])

 10.np.asarray()和np.array()

 

>>> import numpy as np
>>> arr1=np.ones((3,3))
>>> arr2=np.array(arr1) 
>>> arr3=np.asarray(arr1) 
>>> arr1[2]=3
>>> print arr1
[[ 1.  1.  1.]
 [ 1.  1.  1.]
 [ 3.  3.  3.]]
>>> print arr2
[[ 1.  1.  1.]
 [ 1.  1.  1.]
 [ 1.  1.  1.]]
>>> print arr3
[[ 1.  1.  1.]
 [ 1.  1.  1.]
 [ 3.  3.  3.]]

 

使用np.array()函数复制之后会占用一个新的内存,而np.asarray不会。

11.np.dot()和*

 

>>> arr1=np.ones((3,3))
>>> arr2=np.array([[2,2,2],[2,2,2],[2,2,2]])
>>> arr1*arr2
array([[ 2.,  2.,  2.],
       [ 2.,  2.,  2.],
       [ 2.,  2.,  2.]])
>>> np.dot(arr1,arr2)
array([[ 6.,  6.,  6.],
       [ 6.,  6.,  6.],
       [ 6.,  6.,  6.]])

 

np.dot()是真正意思上的矩阵相乘,*是对应元素相乘。

 

posted @ 2017-12-05 16:50  张正-博客园  阅读(361)  评论(0编辑  收藏  举报