Sequence Types
sequence類型有六種:strings, byte sequences (bytes objects), byte arrays(bytearray objects), list, tuple, range objects.
sequence類型都支持的通用操作:
成員檢查:in、not in
連接:+
復制:*
下標取值:s[i]
切片:s[i : j]
長度檢查:len(s)
最小值:min(s)
最大值:max(s)
索引取值:s.index(i)
字符串統計:s.count(i)
String Methods
判斷類方法,通常返回一個布爾值:
str.endswith(suffix[, start[, end]]):
判斷字符串是否以指定后綴結尾,返回True或False。start和end指定判斷的起始范圍,默認全字符串。如:
str.islower():
判斷字符串中的字母字符是否全部為小寫,該方法僅判斷字符串中的字母字符,不理會其它字符。字符串必須至少包含一個字母字符,否則返回False。如:
str.isupper():
與st.islower()方法相反,判斷所有字母字符是否全部大寫。
str.istitle():
判斷字符串每個單詞的首字母是否大寫。字符串必須至少包含一個字母字符,否則返回False。即使首字母字符前面有非字母字符,如中文、數字、下劃線等,也不影響對首字母字符的判斷。
str.isalnum():
判斷字符串是否只包含由文字數字式字符,字符串僅包含中文字符合法。若字符串包含空格、下劃線、~等非文字數字式字符,均返回False。如:
str.isalpha():
判斷字符串是否只包含文字字符,字符串僅包含中文字符合法。如:
判斷字符串是否是合法的標識符,字符串僅包含中文字符合法,實際上這里判斷的是變量名是否合法。如:
判斷字符串所包含的字符是否全部可打印。字符串包含不可打印字符,如轉義字符,將返回False。
str.isspace():
判斷字符串是否僅包含空格或制表符。注意:空格字符與空白是不同的,如:
str.isdecimal():
判斷字符串是否只包含十進制數字字符,包括多國語言的十進制數字字符表現形式。如:
str.isdigit():
判斷字符串是否只包含數字,這里的數字包括十進制數字和其它特殊數字(如上標數字等)。一般地,一個數字是擁有如下屬性值的字符:Numeric_Type=Digit或Numeric_Type=Decimal。
str.isnumeric():
判斷字符串是否只包含數字字符。數字字符范圍很大,一般來說,數字字符是擁有如下屬性值的字符:Numeric_Type=Digit, Numeric_Type=Decimal或Numeric_Type=Numeric。
比較isdecimal()、isdigit()、isnumeric(),幾個方法檢測的范圍依次擴大。
格式化類方法,返回一個格式化的新字符串:
str.encode(encoding=”utf-8”, errors=”strict”):
將字符串以utf-8格式進行編碼。
str.lower():
把全部字母字符轉換成小寫,不去管其它非字母字符。字符串全部為非字母字符也是合法的,但返回原字符串。如:
str.upper():
與str.lower()相反,把全部字母字符轉換成大寫。如:
str.swapcase():
把字符串中的大小寫字母互換,大寫轉換成小寫,小寫轉換成大寫。不去管非字母類字符。如:
字符串首字母大寫,其余小寫。如果字符串首字符為非字母字符,將返回原字符串。字符串僅包含非字母字符合法,但返回原字符串。如:
str.title():
字符串中每個單詞的首字母大寫,其余小寫。單詞的首字符為非字母字符也不影響轉換。字符串僅包含非字母字符合法,但返回原字符串。如:
str.center(width[,fillchar]):
返回一個原字符串居中,長度為width的新字符串,width要大于len(str),否則返回原字符串,原字符串開頭和結尾處使用fillchar進行填充,默認為空格。
注:width為偶數時,fillchar將平均地填充到原字符串的開頭和結尾;為奇數時,fillchar優先填充前面。如:
str.ljust(width[, fillchar]):
返回一個長度為width,左對齊的字符串,最右邊填充fillchar,默認為空格。width要大于len(str),否則返回原字符串。如:
str.rjust(width[, fillchar]):
與str.ljust()類似,但是它返回一個右對齊的字符串,最左邊填充fillchar。
str.lstrip([chars]):
返回一個去除前了導字符的新字符串,chars參數是一個字符串,它包含了所有將要被移除的字符集合。默認為空格。
注:關于lstrip函數(包括rstrip和strip),網上有很多文章,但都講的不清不楚。它實際的意思是,從原字符串的最左邊開始,匹配chars里包含的所有字符,直至遇到第一個非chars字符為止,原字符串中匹配到的所有字符都被移除。
str.rstrip([chars]):
與str.lstrip()相反,從最右邊開始匹配。
str.strip([chars]):
從字符串的兩頭開始匹配。
str.expandtabs([tabsize]):
把字符串中的所有制表符替換成零個或多個空格,每個制表符替換成多少個空格,由制表符在字符串中的位置和tabsize共同決定。tabsize指定每個制表符替換成的空格數,默認為8個。如:
str.zfill(width):
返回一個長度為width的數字字符串,最左邊填充0。如果width小于等于原字符串長度,則返回原字符串。主要用于數字類字符串的格式化。如:
查找 & 替換類方法:
str.count(sub[, start[, end]]):
統計某個字符中子字符串sub的個數。start和end指定統計范圍,未指定則默認全字符串范圍內統計。如:
str.find(sub[, start[, end]]):
查找子字符串在字符串中出現的第一個位置,start和end指定一個查找范圍。未找到返回-1。
str.rfind(sub[, start[, end]]):
跟find方法一樣,返回指定子串的index位置,只不過rfind從字符串的最右邊開始查找,找不到時返回-1。注意:從最右邊開始查找,但index位置卻是從原字符串的最左邊開始算的。如:
str.format(*args, **kwargs):
調用fortmat方法的字符串中不但有純文本,也有使用{}界定符包括起來的替換字段。替換字段既可以是位置參數的數值索引,也可以是字典或屬性的Key值。該方法返回的字符串里,所有替換字段都被相應參數的值所替代。如:
str.index(sub[, start[, end]]):
類似str.find(),但是如果沒有找到子串,返回raised ValueError。
str.rindex(sub[, start[, end]]):
類似于str.rfind(),但是如果沒有找到,返回raises ValueError。
str.replace(old, new[, count]):
返回一個新字符串,原串中的old被替換為new,country指定替換次數。如:
static str.maketrans(x[, [y, z]]):
這個方法我不是很明白,特別是它還有一個static修飾符。
大致上,它的用途是返回一個轉換表,以供str.translate()方法使用,兩個方法常配合使用。
如:
table = str.maketrans('cs', 'kz', 'o')
"please don't knock at my door!".translate(table) -->"pleaze dn't knkk at my dr!" //如果有三個參數,則第三個參數的意思是刪除原字符串中的相應字符。
str.translate(map):
和str.maketrans()函數配合使用,替換相應的字符。
拆分 & 組合類方法:
str.partition(sep):
該方法用于拆分字符串,返回一個包含三個元素的元組。如果未能在原字符串中找到Sep,則元組的三個元素為:原字符串,空串,空串;否則,從原字符串中遇到的第一個Sep字符開始拆分,元組的三個元素為:Sep之前的字符串,Sep字符,Sep之后的字符串;如:
str.rpartition(sep):
與str.partition()相反,從原字符串的最右邊開始拆分,但是同樣返回包含三個元素的元組:倒數第一個Sep之前的字符串,Sep字符,Sep之后的字符串。
注意”倒數Sep之前的字符串”,這個之前的字符串,是從原字符串的最左邊開始算,并不是最右邊。如:
str.split([sep[, maxsplit]]):
返回一個以Sep分隔的列表,maxsplit指定拆分次數(因此,列表中元素的個數為maxsplit + 1)。Sep默認為空格,maxsplit默認不限制拆分次數。
注意:1)如果未指定Sep或指定Sep為None(''),str兩端的空格將舍棄;如果指定Sep(不管能否在原字符串中找到Sep),str兩端的空格將保留
2)如果未能在原字符串中找到Sep,則返回一個僅包含一個元素的列表,這個元素就是原字符串。
如:
注:有點像str.partition(),但是str.partition()返回一個元組,而且分隔符Sep是元組中的一個元素;而str.split(0返回一個列表,分隔符Sep不在列表中
str.rsplit([sep[, maxsplit]]):
與str.split()類似,只是它從最右邊開始拆分。只有在指定maxsplit的情況下才會看到效果。如:
str.join(iterable):
使用連接符str來連接iterable對象中的元素,返回一個被str連接起來的,由iterable對象的元素組成的字符串。如果傳入一個非iterable對象,如整數、布爾值等,將返回Type Error。 如:
str.splitlines([keepends]):
拆分一個包含多行的字符串,以每行為一個元素返回一個列表。如果字符串不是多行的,則返回原字符串。keepends是一個True字符或非零整數,表示保留行尾標志。該方法多用于處理文件。如:
Line = 'AB/nCD/nEF'
Line.splitlines() -->['AB', 'CD', 'EF']
Line = 'AB/nCD/nEF'
Line.splitlines(True) --> ['AB/n', 'CD/n', 'EF']
新聞熱點
疑難解答
圖片精選