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

今日开始阅读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()一下,之后用列表切片重组一下就行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值