Python str方法總結


1.返回第一個字母大寫

   S.capitalize(...)

      S.capitalize() -> string

1
2
3
4
>>>a = 'shaw'
>>> b = a.capitalize()
>>> print b
Shaw

2.按指定長度填充特定字符

    center(...)

      S.center(width[, fillchar]) -> string

1
2
3
4
5
6
7
>>> a = 'linux'
>>> print a.center( 7 , 'h' )
hlinuxh
>>> print a.center( 8 , 'h' )
hlinuxhh
>>> print a.center( 9 , 'h' )
hhlinuxhh

3.查找某字符串出現的次數

    count(...)

      S.count(sub[, start[, end]]) -> int

1
2
3
4
5
6
7
8
9
>>> a = "this is my dog, i love this dog and it's a good dog!"
>>> print a.count( 'dog' )
3
>>> print a.count( 'dog' , 15 )
2
>>> print a.count( 'dog' , 15 , 30 )
0
>>> print a.count( 'dog' , 15 , 32 )
1

4.以指定的編碼格式解碼字符串。默認編碼為字符串編碼(適合python2中處理中文)

    decode(...)

      S.decode([encoding[,errors]]) ->object

1
2
3
b = 'strid'
>>> b.decode( 'utf-8' )
u 'strid'

5.用於判斷字符串是否以指定后綴結尾,如果以指定后綴結尾返回True,否則返回False。可選參數"start""end"為檢索字符串的開始與結束位置

    endswith(...)

    S.endswith(suffix[,start[, end]]) ->bool

1
2
3
4
5
6
7
>>> shaw = 'I am shaw,what\'s your name ?'
>>> shaw.endswith( '?' )
True
>>> shaw.endswith( 'w' , 7 , 9 )
True
>>> shaw.endswith( 'w' , 7 , 8 )
False

6.把字符串中的 tab 符號('\t')轉為空格,tab 符號('\t')默認的空格數是8tabsize -- 指定轉換字符串中的 tab 符號('\t')轉為空格的字符數。

    expandtabs(...)

    S.expandtabs([tabsize])-> string

1
2
3
4
5
6
7
>>> info = 'today is a good d\tay'
>>> print info.expandtabs()
today is a good d       ay
>>> print info.expandtabs( 4 )   # 把tab裝換成4個空格
today is a good d   ay        
>>> printinfo.expandtabs( 1 )
today is a good d ay          # 把tab裝換成1個空格

7.檢測字符串中是否包含子字符串 str ,如果指定 beg(開始)和 end(結束)范圍,則檢查是否包含在指定范圍內,如果包含子字符串,則返回開始的索引值,否則返回-1

    find(...)

    S.find(sub [,start [,end]])-> int

1
2
3
4
5
6
7
>>> a = 'stivenwang'
>>> a.find( 'w' )
6
>>> a.find( 'w' , 9 )
- 1
>>> a.find( 'w' , 9 , 11 )
- 1

8.格式換字符串輸出(方法與%相似,但可以指定順序)

    format(...)

    S.format(*args, **kwargs)-> string

1
2
3
4
5
6
7
8
>>> name = 'StivenWang'
>>> fruit = 'apple'
>>> print 'my name is {},I like {}' . format (name,fruit)
my name is StivenWang,I like apple
>>> print 'my name is {1},I like {0}' . format (fruit,name)
my name is StivenWang,I like apple
>>> print 'my name is {mingzi},I like{shuiguo}' . format (shuiguo = fruit,mingzi = name)
my name is StivenWang,I like apple

9.檢測字符串string中是否包含子字符串 str ,如果存在,則返回strstring中的索引值,如果指定beg(開始)和 end(結束)范圍,則檢查是否包含在指定范圍內,該方法與 python find()方法一樣,只不過如果str不在 string中會報一個異常(ValueError: substring not found)

   index(...)

    S.index(sub [,start [,end]])-> int

1
2
3
4
5
6
7
8
>>> str1 = "this is string example....wow!!!"
>>> str2 = "exam"
>>> print str1.index(str2)
15
>>> print str1.index(str2, 20 )
Traceback (most recent call last):
   File "<input>" ,line 1 , in <module>
ValueError: substringnot found報錯

10.檢測字符串是否由字母或數字組成。

    isalnum(...)

    S.isalnum() -> bool

1
2
3
4
5
6
7
8
9
10
11
12
>>> a = '123'
>>> a.isalnum()
True
>>> b = 'shaw'
>>> b.isalnum()
True
>>> c = 'shaw123'
>>> c.isalnum()
True
>>> d = 'th 123'
>>> d.isalnum()
False

11.檢測字符串是否只由字母組成

    isalpha(...)

    S.isalpha() -> bool

1
2
3
4
5
6
7
8
9
10
11
12
>> a = '123'
>>> a.isalpha()
False
>>> b = '123shaw'
>>> b.isalpha()
False
>>> c = 'shaw'
>>> c.isalpha()
True
>>> d = 'sha w'
>>> d.isalpha()
False

12.檢測字符串是否只由數字組成。

    isdigit(...)

    S.isdigit() -> bool

1
2
3
4
5
6
7
8
9
>>> a = '123'
>>> a.isdigit()
True
>>> b = 'shaw'
>>> b.isdigit()
False
>>> c = '123shaw'
>>> c.isdigit()
False

13.檢測字符串是否由小寫字母組成。

    islower(...)

    S.islower() -> bool

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> a = 'shaw'
>>> a.islower()
True
>>> b = '123'
>>> a.islower()
True
>>> c = '123shaw'
>>> c.islower()
True
>>> d = 'SHAW'
>>> d.islower()
False
>>> e = '123SHAW'
>>> e.islower()
False

14.檢測字符串是否只由空格組成。

    isspace(...)

    S.isspace() -> bool

1
2
3
4
5
6
7
8
9
>>> a = ' '
>>> a.isspace()
True
>>> a = '123'
>>> a.isspace()
False
>>> a = 'shaw'
>>> a.isspace()
False

15.檢測字符串中所有的單詞拼寫首字母是否為大寫,且其他字母為小寫。

    istitle(...) 

    S.istitle() -> bool

1
2
3
4
5
6
7
8
9
>>> a = 'Shaw'
>>> a.istitle()
True
>>> a = 'Shaw123'
>>> a.istitle()
True
>>> a = '123'
>>> a.istitle()
False

16.檢測字符串中所有的字母是否都為大寫

    isupper(...)

      S.isupper() -> bool

1
2
3
4
5
6
7
8
9
10
11
12
>>> a = '123'
>>> a.isupper()
False
>>> a = 'Shaw'
>>> a.isupper()
False
>>> a = 'Shaw123'
>>> a.isupper()
False
>>> a = 'SHAW123'
>>> a.isupper()
True

17.用於將序列中的元素以指定的字符連接生成一個新的字符串。

join(...)

    S.join(iterable) ->string

1
2
3
4
>>> a = '-'
>>> b = 'shaw'
>>> print a.join(b)
s - h - a - w

18.返回一個原字符串左對齊,並使用空格填充至指定長度的新字符串。如果指定的長度小於原字符串的長度則返回原字符串。

    ljust(...)

    S.ljust(width[, fillchar])-> string

    width -- 指定字符串長度

    fillchar -- 填充字符,默認為空格

1
2
3
4
5
>>> s = 'shaw'
>>> s.ljust( 10 )
'shaw      '
>>> s.ljust( 10 , '8' )
'shaw888888'

19.轉換字符串中所有大寫字符為小寫。

    Lower(...)

    S.lower() -> string

1
2
3
4
5
6
>>> s = 'PYTHON'
>>> s.lower()
'python'
>>> s = 'PYTHON123'
>>> s.lower()
'python123'

20.用於截掉字符串左邊的空格或指定字符。

    lstrip(...)

    S.lstrip([chars]) ->string or unicode

1
2
3
4
5
6
>>> s = '%%%shaw'
>>> s.lstrip( '%' )
'shaw'
>>> s = '   shaw'
>>> s.lstrip()
'shaw'

21.根據指定的分隔符將字符串進行分割(返回一個3元的元組,第一個為分隔符左邊的子串,第二個為分隔符本身,第三個為分隔符右邊的子串)

    partition(...)

    S.partition(sep) ->(head, sep, tail)

1
2
3
>>> S = 'are you know:lilin is lowser'
>>> S.partition( 'lilin' )
( 'are you know:' , 'lilin' , ' is lowser' )

22.把字符串中的 old(舊字符串)替換成 new(新字符串),如果指定第三個參數max,則替換不超過 max 次。

    replace(...)

    S.replace(old, new[,count]) -> string

1
2
3
>>> S = 'shaw'
>>> S.replace( 'sh' , 'LI' )
'LIaw'

23.返回字符串最后一次出現的位置,如果沒有匹配項則返回-1

    rfind(...)

    S.rfind(sub [,start[,end]]) -> int

    str -- 查找的字符串

    beg -- 開始查找的位置,默認為0

    end -- 結束查找位置,默認為字符串的長度。

1
2
3
4
5
>>> s = 'lilin is good li lao ban'
>>> s.rfind( 'li' )
14
>>> s.rfind( 'li' , 0 , 8 )
2

24.返回子字符串 str 在字符串中最后出現的位置,如果沒有匹配的字符串會報異常,你可以指定可選參數[beg:end]設置查找的區間。

    rindex(...)

    S.rindex(sub [,start[,end]]) -> int

    語法:

      str.rindex(str,beg=0 end=len(string))

1
2
3
4
5
6
7
8
9
>>> s = 'my name is shaw'
>>> s.rindex( 's' )
11
>>> s.rindex( 's' , 5 , 10 )
9
>>> s.rindex( 's' , 2 , 8 )
Traceback (most recent call last):
   File "<input>" ,line 1 , in <module>
ValueError: substring not found

25.返回的原/新字符串右對齊,且默認使用空格填充至指定長度(width)的新字符串。如果指定的長度(width)小於原字符串的長度則返回原字符串

    rjust(...)

    S.rjust(width[, fillchar])-> string

    語法:

      str.rjust(width[,fillchar])

       width -- 指定填充指定字符后新字符串的總長度.

       fillchar– 要填充的字符,默認為空格。

1
2
3
4
5
6
7
>>> s = 'sch'
>>> s.rjust( 20 )
'                 sch'
>>> s.rjust( 20 , '0' )
'00000000000000000sch'
>>> s.rjust( 20 , 'H' )
'HHHHHHHHHHHHHHHHHsch'

26.刪除 string 字符串末尾的指定字符(默認為空格).

    rstrip(...)

    S.rstrip([chars]) ->string or unicode

    語法:

      str.rstrip([chars])

1
2
3
>>> s = 'shaw\n'
>>> s.rstrip( '\n' )
'shaw'

27.通過指定分隔符對字符串進行切片,如果參數num有指定值,則僅分隔 num 個子字符串

    split(...)

    S.split([sep [,maxsplit]])-> list ofstrings

    語法:

   str.split(str="",num=string.count(str)).

1
2
3
4
5
>>> s = 'shaw\nlinux\nmac'
>>> s.split( '\n' )
[ 'shaw' , 'linux' , 'mac' ]
>>> s.split( '\n' , 1 )
[ 'shaw' , 'linux\nmac' ]

28.按照行分隔,返回一個包含各行作為元素的列表,如果 num 指定則僅切片 num 個行.

    splitlines(...)

    S.splitlines(keepends=False)-> list ofstrings

    語法:

      str.splitlines( num=string.count('\n'))

       num -- 分割行的次數。

1
2
3
4
5
6
>>> s = 'what\'s your name?\n my name is shaw\n how old areyou?'
>>> s.splitlines()
[ "what's your name?" , ' my name is shaw ', ' how old areyou?']
>>> s.splitlines( 1 )
[ "what's your name?\n" , ' my name is shaw\n ', ' how old areyou?']
>>> s.splitlines( 3 )

29.用於檢查字符串是否是以指定子字符串開頭,如果是則返回 True,否則返回 False。如果參數 beg  end指定值,則在指定范圍內檢查。

    startswith(...)

    S.startswith(prefix[,start[, end]]) ->bool

    語法:

    str.startswith(str,beg=0,end=len(string))

    str -- 檢測的字符串。

    strbeg -- 可選參數用於設置字符串檢測的起始位置。

    strend -- 可選參數用於設置字符串檢測的結束位置。

1
2
3
4
5
>>> s = 'my name is shaw'
>>> s.startswith( 'my' )
True
>>> s.startswith( 'my' , 10 , 15 )
False

30.用於移除字符串頭尾指定的字符(默認為空格)。

    strip(...)

    S.strip([chars]) ->string or unicode

1
2
3
>>> s = 'my name is sam'
>>> s.strip( 'm' )
'y name is sa'

31.用於對字符串的大小寫字母進行轉換(小寫轉大寫,大寫轉小寫)

    swapcase(...)

    S.swapcase() -> string

1
2
3
4
5
6
>>> s = 'stiven'
>>> s.swapcase()
'STIVEN'
>>> s = 'SHAW'
>>> s.swapcase()
'shaw'

32.返回"標題化"的字符串,就是說所有單詞都是以大寫開始,其余字母均為小寫。

    title(...)

    S.title() -> string

1
2
3
>>> s = 'my name is shaw'
>>> s.title()
'My Name Is Shaw'

33.根據參數table給出的表(包含 256 個字符)轉換字符串的字符, 並返回翻譯后的字符串要過濾掉的字符放到del 參數中

    translate(...)

    S.translate(table [,deletechars])->string

    語法:

      str.translate(table[, deletechars])

       table -- 翻譯表,翻譯表是通過maketrans方法轉換而來。

      deletechars -- 字符串中要過濾的字符列表。

1
2
3
4
5
6
7
8
9
>>> from string import maketrans
suchas = maketrans( 'sm' , '@$' )
>>> s = 'this is sam\'s dog'
>>> s
"this is sam's dog"
>>> s.translate(suchas)
"thi@ i@ @a$'@ dog"
>>> s.translate(suchas, 'dog' ) 去除d,o,g字符
"thi@ i@ @a$'@ "

34.將字符串中的小寫字母轉為大寫字母

    upper(...)

    S.upper() -> string

1
2
3
4
5
6
7
8
9
>>> s = 'sam'
>>> s.upper()
'SAM'
>>> s = '23sam'
>>> s.upper()
'23SAM'
>>> s = '23s am'
>>> s.upper()
'23S AM'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM