字串

回報問題 查看原始碼 夜間 7.2 7.1 7.0 6.5 6.4 支援字串的內建類型。字串常值範例:
a = 'abc\ndef'
b = "ab'cd"
c = """multiline string"""

# Strings support slicing (negative index starts from the end):
x = "hello"[2:4]  # "ll"
y = "hello"[1:-1]  # "ell"
z = "hello"[:4]  # "hell"# Slice steps can be used, too:
s = "hello"[::2] # "hlo"
t = "hello"[3:0:-1] # "lle"
字串無法直接疊代,請使用 .elems() 方法疊代其字元。範例:
"bc" in "abcd"   # evaluates to True
x = [c for c in "abc".elems()]  # x == ["a", "b", "c"]
不允許隱含字串。請改用 + 運算子。比較運算子會按字母順序比較;使用 == 測試是否相等。

成員

大寫字母

string string.capitalize()

傳回字串副本,其第一個字元 (如有) 是大寫和其餘小寫。此方法不支援非 ASCII 字元。

數量

int string.count(sub, start=0, end=None)

傳回字串中子字串 sub 的出現 (非重疊) 次數,可選擇限制為 [start:end]start 表示包含在內,end 則不包含。

參數

參數 說明
sub string; 必要
要計算的子字串。
start int;或 None; 預設值為 0
限制搜尋這個位置。
end int;或 None; 預設值為 None
(可限定搜尋的範圍)。

Elms

sequence string.elems()

傳回可疊代值,其中包含字串的連續 1 個元素子字串。等同於 [s[i] for i in range(len(s))],只是傳回的值可能不是清單。

結尾為

bool string.endswith(sub, start=0, end=None)

如果字串以 sub 結尾,則傳回 True,否則傳回 False,否則可選擇限制為 [start:end]start 表示包含且 end 不包含在範圍內。

參數

參數 說明
sub string;字串tuple; 必要
要比對的後置字串 (或替代後置字元的元組)。
start int;或 None; 預設值為 0
從這個位置開始進行測試。
end int;或 None; 預設值為 None
可以停止比較的選擇性位置

尋找

int string.find(sub, start=0, end=None)

傳回找到 sub 的第一個索引,如果沒有這類索引,則傳回 -1,並視需要限制為 [start:end]start 表示包含且 end 排除。

參數

參數 說明
sub string; 必要
要尋找的子字串。
start int;或 None; 預設值為 0
限制搜尋這個位置。
end int;或 None; 預設值為 None
(可限定搜尋的範圍)。

format

string string.format(*args, **kwargs)

執行字串內插。格式字串包含以大括號 {} 括住的替換欄位。凡是未包含在大括號中的內容,都視為常值文字,系統會直接複製到輸出內容。如果您需要在文字文字中加入大括號字元,只要加上一倍即可逸出:{{}}替換欄位可以是名稱、數字或空白欄位。系統會使用 str 函式將值轉換為字串。
# Access in order:
"{} < {}".format(4, 5) == "4 < 5"
# Access by position:
"{1}, {0}".format(2, 1) == "1, 2"
# Access by name:
"x{key}x".format(key = 2) == "x2x"

參數

參數 說明
args 預設值為 ()
引數清單。
kwargs 預設值為 {}
引數字典。

索引

int string.index(sub, start=0, end=None)

傳回找到 sub 的第一個索引,如果沒有這類索引,就會引發錯誤,或者是選擇將 [start:end]start 限制為包含成包含且 end 排除。

參數

參數 說明
sub string; 必要
要尋找的子字串。
start int;或 None; 預設值為 0
限制搜尋這個位置。
end int;或 None; 預設值為 None
(可限定搜尋的範圍)。

Isalnum

bool string.isalnum()

如果字串中的所有字元都是英數字元 ([a-zA-Z0-9]),且至少有一個字元,則傳回 True。

Isalpha

bool string.isalpha()

如果字串中的所有字元都是英文字母 ([a-zA-Z]),且至少有一個字元,則傳回 True。

數字

bool string.isdigit()

如果字串中的所有字元都是數字 ([0-9]),且至少有一個字元,則傳回 True。

偏離

bool string.islower()

如果字串中的所有大小寫字元都是小寫,且至少有一個字元,則傳回 True。

Isspace

bool string.isspace()

如果所有字元都是空白字元,且字串包含至少一個字元,則傳回 True。

istitle

bool string.istitle()

如果字串是每字字首大寫,且包含至少一個字元,則傳回 True。也就是說,所有大寫字元都必須接在不區分大小寫的字元 (例如空白字元),而且所有小寫字元都必須跟著大小寫 (例如大寫或小寫)。

伊斯佩普

bool string.isupper()

如果字串中的所有大小寫字元都是大寫,且至少有一個字元,則傳回 True。

彙整

string string.join(elements)

傳回字串,其中的引數字串元素會以此字串聯結為分隔符。範例:
"|".join(["a", "b", "c"]) == "a|b|c"

參數

參數 說明
elements 必要
要彙整的物件。

string string.lower()

傳回此字串的小寫版本。

垃圾清單

string string.lstrip(chars=None)

傳回移除 chars 中的前置字元的字串副本。請注意,chars 不是前置字元:系統會移除其值的所有組合:
"abcba".lstrip("ba") == "cba"

參數

參數 說明
chars string;或 None; 預設值為 None
要移除的字元,或所有空白字元 (如果 None)。

分區

tuple string.partition(sep)

在分隔符 sep 的第一個出現時分割輸入字串,並將產生的分區傳回為表單的三元素元組 (之前、分隔符、之後)。如果輸入字串不含分隔符,則會傳回分區 (self, '', '')。

參數

參數 說明
sep string; 必要
要分割的字串。

removeprefix

string string.removeprefix(prefix)

如果字串開頭為 prefix,則會傳回已移除此前置字元的新字串。否則,則會傳回字串。

參數

參數 說明
prefix string; 必要
要移除的前置字串 (如果有的話)。

removesuffix

string string.removesuffix(suffix)

如果字串結尾是 suffix,則傳回已移除後置字串的新字串。否則,則會傳回字串。

參數

參數 說明
suffix string; 必要
要移除的後置字串 (如有)。

取代

string string.replace(old, new, count=-1)

傳回字串副本,其中出現 old 被取代為 new,並視需要將取代次數限制為 count

參數

參數 說明
old string; 必要
要替換的字串。
new string; 必要
要取代的字串。
count int; 預設值為 -1
替換項目數量上限。如果省略此值或為負數,表示沒有限制。

rfind

int string.rfind(sub, start=0, end=None)

傳回找到 sub 的最後一個索引,如果沒有這類索引,則傳回 -1,並視需要限制為 [start:end]start 表示包含且 end 排除。

參數

參數 說明
sub string; 必要
要尋找的子字串。
start int;或 None; 預設值為 0
限制搜尋這個位置。
end int;或 None; 預設值為 None
(可限定搜尋的範圍)。

rindex

int string.rindex(sub, start=0, end=None)

傳回找到 sub 的最後一個索引,如果沒有這類索引,就會引發錯誤,可選擇限制為 [start:end]start 表示包含且 end 排除。

參數

參數 說明
sub string; 必要
要尋找的子字串。
start int;或 None; 預設值為 0
限制搜尋這個位置。
end int;或 None; 預設值為 None
(可限定搜尋的範圍)。

分區

tuple string.rpartition(sep)

在分隔符 sep 最後一個出現的輸入字串分割輸入字串,並將產生的分區傳回為表單的三元素元組 (之前、分隔符、之後)。如果輸入字串不含分隔符,則可傳回 '', '', 。

參數

參數 說明
sep string; 必要
要分割的字串。

rsplit

list string.rsplit(sep, maxsplit=None)

傳回字串中所有字詞的清單,使用 sep 做為分隔符,並視需要將分割次數限制為 maxsplit。除了從右側分割外,此方法的運作方式會與 Split() 一樣。

參數

參數 說明
sep string; 必要
要分割的字串。
maxsplit int;或 None; 預設值為 None
分割數量上限。

Rrtrip

string string.rstrip(chars=None)

傳回移除 chars 中結尾字元的字串副本。請注意,chars 並非後置字串,其值的所有組合都會遭到移除:
"abcbaa".rstrip("ab") == "abc"

參數

參數 說明
chars string;或 None; 預設值為 None
要移除的字元,或所有空白字元 (如果 None)。

斯普利特

list string.split(sep, maxsplit=None)

傳回字串中所有字詞的清單,使用 sep 做為分隔符,並視需要將分割次數限制為 maxsplit

參數

參數 說明
sep string; 必要
要分割的字串。
maxsplit int;或 None; 預設值為 None
分割數量上限。

分段線

sequence string.splitlines(keepends=False)

將字串分割在行邊界 ('\n', '\r\n', '\r') 並傳回結果,做為新的可變動清單。

參數

參數 說明
keepends bool; 預設值為 False
是否應在結果清單中納入換行符號。

開頭是

bool string.startswith(sub, start=0, end=None)

如果字串開頭為 sub,則傳回 True,否則傳回 False,否則可選擇限制為 [start:end]start 表示包含且 end 不包含在範圍內。

參數

參數 說明
sub string;字串tuple; 必要
要比對的前置字元 (或替代前置字元的組合)。
start int;或 None; 預設值為 0
從這個位置開始進行測試。
end int;或 None; 預設值為 None
請停止比較這個位置。

長條

string string.strip(chars=None)

傳回 chars 中的開頭或結尾字元移除的字串副本。請注意,chars 既不是前置字元,也不是後置字串,其值的所有組合將遭到移除:
"aabcbcbaa".strip("ab") == "cbc"

參數

參數 說明
chars string;或 None; 預設值為 None
要移除的字元,或所有空白字元 (如果 None)。

title

string string.title()

將輸入字串轉換成每字字首大寫格式,亦即每個字詞的開頭都是大寫字母,其餘字母則為小寫。在這個情況下,一個字詞是指嚴格說的字母序列。此方法不支援補充 Unicode 字元。

較高

string string.upper()

傳回此字串的大寫版本。