Python 字串操作

2021-09-02 16:05:31 字數 4405 閱讀 4299

字串連線

方法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 ".format(python=m)

print astr

#3 字典格式化字串

m = 'python'

astr = "i love %(python)s " %

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() #大小寫互換

Python字串操作

1 複製字串 str2 str1 2 鏈結字串 str abc 3 查詢字串 string.find sub string.index sub string.rfind sub string,rindex sub 4 字串比較 cmp str1,str2 cmp str1.upper str2.up...

Python字串操作

python如何判斷乙個字串只包含數字字元 python 字串比較 下面列出了常用的python實現的字串操作 strcpy sstr1,sstr2 sstr1 strcpy sstr2 sstr1 sstr1 strcpy2 print sstr2 strcat sstr1,sstr2 sstr1...

python字串操作

在 python 有各種各樣的string操作函式。在歷史上string類在 python 中經歷了一段輪迴的歷史。在最開始的時候,python 有乙個專門的string的module,要使用string的方法要先import,但後來由於眾多的 python 使用者的建議,從 python 2.0開...