您的位置:首页 > 编程语言 > Python开发

python cookbook 读书笔记1(字符串处理1)

2015-04-23 14:35 489 查看
今日开始阅读python cook book,学习内容记录一下。

1.1对于字符串处理,可以将字符串变成一个列表,可以用for循环字符串,也可以用map()来处理单个字符。字符串是可以变成集合,之后求交集等一系列运算,但字符串是不可以的。例子如下。

>>> a='wf4wf34f'

>>> list(a)

['w', 'f', '4', 'w', 'f', '3', '4', 'f']

>>> for c in a:

... print c

...

w

f

4

w

f

3

4

f

>>> map(ord,a)

[119, 102, 52, 119, 102, 51, 52, 102]

>>> x='ergreg'

>>> y='regrwg'

>>> print ''.join(sets.Set(x)&sets.Set(y))

reg

1.3测试一个字符串是否是类对象,可以使用isinstance(string,basestring)来做,但是这个只能测试由basestring派生的字符串(比如类字符串对象就不是basestring派生),所以不全面,书中给出全面的例子为:

>>> def isStringLike(test_string):

... try:

... test_string.lower()+test_string+''

... except:

... return False

... else:

... return True

...

>>> isStringLike(12)

False

>>> isStringLike('wrfw')

True

1.4字符串对齐,字符串对齐的函数有ljust(),rjust(),center(),分别是左对齐,右对齐,居中,第一个参数为一共站多少位,默认占位符是空格。

>>> print '|','abc'.ljust(10),'|','abc'.rjust(10),'|','abc'.center(10),'|'

| abc | abc | abc |



这三个函数可以添加另外的参数作为分隔符
>>> print '|','abc'.ljust(10,'+'),'|','abc'.rjust(10,'+'),'|','abc'.center(10,'+'),'|'

| abc+++++++ | +++++++abc | +++abc++++ |

1.5去除字符串两端的空格,书里一共提供了三个函数,lstrip(),rstrip(),strip(),分别是去除左边右边两端的空格。
>>> x=' efrfre '

>>> print '|',x.lstrip(),'|',x.rstrip(),'|',x.strip(),'|'

| efrfre | efrfre | efrfre |

同样这三个函数也可以加参数,参数是或的关系,
>>> x='bsbsbsbs hfwhrnggweru sbsbsbsb'

>>> print '|'+x.strip('sb')+'|'

| hfwhrnggweru |

1.6合并字符串,书里的建议就是尽量使用%s占位符和join函数合并字符串,尽量不要使用+来拼接字符串,因为每执行一次‘+’都会创建销毁对象,直到全部拼接完成。
1.7反转字符串,对于字符串的反转很简单,使用切片方式反转
>>> a='eognetgjnb'

>>> a[::-1]

'bnjgtengoe'

对于列表或者元组,使用这种方式是把其中元素的顺序反转,每个元素并不反转
>>> a=['a','big','pig']

>>> b=('a','small','dog')

>>> a[::-1]

['pig', 'big', 'a']

>>> b[::-1]

('dog', 'small', 'a')

在看这个的时候突然想到如果把列表里面的每个元素都反转应该怎么做,百度了一下这么写
import itertools

>>> b=['a','big','pig']

>>>''.join(itertools.chain(*b))

'abigpig'

之后把他list()一下,之后用列表切片重组一下就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: