python中的字符串

字符串連接

方法1: 用字符串的join方法
a = ['a','b','c','d']
content = ''
content = ''.join(a)
print content
方法2: 用字符串的替換佔位符替換
a = ['a','b','c','d']
content = ''
content = '%s%s%s%s' % tuple(a)
print content

字符串截取

我們可以通過索引來提取想要獲取的字符,可以把python的字符串也做爲字符串的列表就更好理解
python的字串列表有2種取值順序
1是從左到右索引默認0開始的,最大範圍是字符串長度少1
s = 'ilovepython'
s[0]的結果是i
2是從右到左索引默認-1開始的,最大範圍是字符串開頭
s = 'ilovepython'
s[-1]的結果是n
上面這個是取得一個字符,如果你的實際要取得一段子串的話,可以用到變量[頭下標:尾下標],就可以截取相應的字符串,其中下標是從0開始算起,可以是正數或負數,下標可以爲空表示取到頭或尾。
比如
s = 'ilovepython'
s[1:5]的結果是love
當使用以冒號分隔的字符串,python返回一個新的對象,結果包含了以這對偏移標識的連續的內容,左邊的開始是包含了下邊界,比如
上面的結果包含了s[1]的值l,而取到的最大範圍不包括上邊界,就是s[5]的值p

字符串替換

字符串替換可以用內置的方法和正則表達式完成。
1用字符串本身的replace方法:
a = 'hello word'
b = a.replace('word','python')
print b
2用正則表達式來完成替換:
import re
a = 'hello word'
strinfo = re.compile('word')
b = strinfo.sub('python',a)
print b

字符串比較

cmp方法比較兩個對象,並根據結果返回一個整數。cmp(x,y)如果X< Y,返回值是負數 如果X>Y 返回的值爲正數。
sStr1 = 'strch'
sStr2 = 'strchr'
print cmp(sStr1,sStr2)##-1

字符串相加

我們通過操作符號+來進行字符串的相加,不過建議還是用其他的方式來進行字符串的拼接,這樣效率高點。
原因:在循環連接字符串的時候,他每次連接一次,就要重新開闢空間,然後把字符串連接起來,再放入新的空間,再一次循環,又要開闢新的空間,把字符串連接起來放入新的空間,如此反覆,內存操作比較頻繁,每次都要計算內存空間,然後開闢內存空間,再釋放內存空間,效率非常低。
sStr1 = 'strch'
sStr2 = 'strchr'
newstr = sStr1 + sStr2
print newstr

字符串查找

python 字符串查找有4個方法,1 find,2 index方法,3 rfind方法,4 rindex方法。
1 find()方法:
info = 'abca'
print info.find('a')##從下標0開始,查找在字符串裏第一個出現的子串,返回結果:0

info = 'abca'
print info.find('a',1)##從下標1開始,查找在字符串裏第一個出現的子串:返回結果3

info = 'abca'
print info.find('333')##返回-1,查找不到返回-1
2 index()方法:
python 的index方法是在字符串裏查找子串第一次出現的位置,類似字符串的find方法,不過比find方法更好的是,如果查找不到子串,會拋出異常,而不是返回-1
info = 'abca'
print info.index('a')
print info.index('33')

字符串分割

字符串分割,可以用split,rsplit方法,通過相應的規則來切割成生成列表對象
info = 'name:haha,age:20$name:python,age:30$name:fef,age:55'
content = info.split('$')
print content

字符串翻轉

通過步進反轉[::-1]
a = 'abcd'
b = a[::-1]##[::-1]通過步進反轉
print b

字符串編碼

通過字符串的decode和encode方法
1 encode([encoding,[errors]]) 
#其中encoding可以有多種值,比如gb2312 gbk gb18030 bz2 zlib big5 bzse64等都支持。errors默認值爲"strict",意思是UnicodeError。可能的值還有'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 和所有的通過codecs.register_error註冊的值。
S.decode([encoding,[errors]]) 下面是字符串編碼應用:
a = '你好'
b = 'python'
print a.decode('utf-8').encode('gbk')##decode方法把字符串轉換爲unicode對象,然後通過encode方法轉換爲指定的編碼字符串對象
print b.decode('utf-8')##decode方法把字符串轉換爲unicode對象

字符串追加和拼接

通過字符串的佔位符來進行字符串的拼接
#1 元組拼接
m = 'python'
astr = 'i love %s' % m
print astr


#2 字符串的format方法
m = 'python'
astr = "i love {python}".format(python=m)
print astr


#3 字典格式化字符串
m = 'python'
astr = "i love %(python)s " % {'python':m}
print astr

字符串複製

通過變量來進行賦值
fstr = 'strcpy'
sstr = fstr
fstr = 'strcpy2'
print sstr

字符串長度

通過內置方法len()來計算字符串的長度,注意這個計算的是字符的長度。
aa = 'afebb'
bb = '你'
print len(aa)
print len(bb)

字符串大小寫

通過下面的upper(),lower()等方法來轉換大小寫
S.upper()#S中的字母大寫 
S.lower() #S中的字母小寫 
S.capitalize() #首字母大寫 
S.istitle() #S是否是首字母大寫的 
S.isupper() #S中的字母是否便是大寫 
S.islower() #S中的字母是否全是小寫 

字符串去空格

通過strip(),lstrip(),rstrip()方法去除字符串的空格
S.strip()去掉字符串的左右空格
S.lstrip()去掉字符串的左邊空格
S.rstrip()去掉字符串的右邊空格

字符串其他方法

字符串相關的其他方法:count(),join()方法等。
S.center(width, [fillchar]) #中間對齊
S.count(substr, [start, [end]]) #計算substr在S中出現的次數
S.expandtabs([tabsize]) #把S中的tab字符替換沒空格,每個tab替換爲tabsize個空格,默認是8個 
S.isalnum() #是否全是字母和數字,並至少有一個字符 
S.isalpha() #是否全是字母,並至少有一個字符 
S.isspace() #是否全是空白字符,並至少有一個字符
S.join()#S中的join,把列表生成一個字符串對象
S.ljust(width,[fillchar]) #輸出width個字符,S左對齊,不足部分用fillchar填充,默認的爲空格。
S.rjust(width,[fillchar]) #右對齊 
S.splitlines([keepends]) #把S按照行分割符分爲一個list,keepends是一個bool值,如果爲真每行後而會保留行分割符。
S.swapcase() #大小寫互換 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章