python cookbook学习笔记 第一章 文本(2)

1.6合并字符串

 

ka=list('kaluoc') #字符串转成字符串列表
print ''.join(ka) #大量的字符串相连,join是最高效的
print '%s%s something %s '% (ka[0],ka[1],ka[2]) #这种来自C语言的方式也不错,也能进行变量的格式化
print ka[0]+ka[1]+ka[2]  #这种是最自然的方式,但效率低下

结果:

kaluoc
ka something l 
kal

1.7将字符串逐字符或逐词反转

print 'kaluoc'[::-1] #步长为-1的切片,可直接产生字符的反转
print ''.join(reversed('kaluoc')) #反转后连接,效果不如上面的简单直接,revered返回的是迭代器
print ' '.join('ka luo c'.split()[::-1]) #以空格分隔为列表,然后反转并连接

结果:

coulak
coulak
c luo ka

1.8检查字符串中是否包含某字符集合中的字符

def containsAny(seq,aset):
    for c in seq:
        if c in aset:return True  #一旦判断包含,就返回结果,实际上这个函数不仅仅用于字符串上
    return False

1.9简化字符串的translate方法的使用

跳过,添加个translate的使用

import string #导入string
s='kaluoc'
table=string.maketrans('kac','KAC') #制作翻译表
print s.translate(table) #翻译
print s.translate(table,'uc') #翻译并删除特定字符

结果:

KAluoC
KAlo

 1.10过滤字符串中不属于指定集合的字符

import string #导入string
allchars=string.maketrans('','') #翻译规则(就是不翻译)
def makefilter(keep):
    delchars=allchars.translate(allchars,keep) #不翻译,但删除keep内字符,即keep的补集
    def thefilter(s): #闭包
        return s.translate(allchars,delchars) #不翻译,删除keep的补集所含有的字符
    return thefilter

if __name__=='__main__':
    just_vowels=makefilter('aeiouy')
    print just_vowels('kaluoc and seven years ago')

结果:

auoaeeyeaao

 

posted on 2013-07-15 10:42  卡罗C  阅读(235)  评论(0编辑  收藏  举报

导航