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將字符串逐字符或逐詞反轉spa

print 'kaluoc'[::-1] #步長爲-1的切片,可直接產生字符的反轉
print ''.join(reversed('kaluoc')) #反轉後鏈接,效果不如上面的簡單直接,revered返回的是迭代器
print ' '.join('ka luo c'.split()[::-1]) #以空格分隔爲列表,而後反轉並鏈接

結果:翻譯

coulak
coulak
c luo ka

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

def containsAny(seq,aset):
    for c in seq:
        if c in aset:return True  #一旦判斷包含,就返回結果,實際上這個函數不單單用於字符串上
    return False

1.9簡化字符串的translate方法的使用blog

跳過,添加個translate的使用字符串

import string #導入string
s='kaluoc'
table=string.maketrans('kac','KAC') #製做翻譯表
print s.translate(table) #翻譯
print s.translate(table,'uc') #翻譯並刪除特定字符

結果:string

KAluoC
KAlo

 1.10過濾字符串中不屬於指定集合的字符it

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

結果:io

auoaeeyeaao
相關文章
相關標籤/搜索