字串

回報問題 查看原始碼 Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

支援字串的語言內建類型。字串常值範例:

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 必填
要計數的子字串。
start intNone; 預設為 0
限制從這個位置搜尋。
end intNone;預設為 None
。 可選位置,用於限制搜尋。

elems

sequence string.elems()

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

endswith

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

如果字串結尾為 sub,則傳回 True,否則傳回 False,可選擇限制為 [start:end]start 為包含,end 為排除。

參數

參數 說明
sub 字串;或字串元組; 必要
要比對的字尾 (或替代字尾的元組)。
start intNone;預設為 0
。 測試從這個位置開始。
end int;或 None; 預設為 None
可選位置,用於停止比較。

尋找

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

傳回找到 sub 的第一個索引,如果沒有這樣的索引,則傳回 -1。可選擇限制為 [start:end]start 為包含和 end 為排除。

參數

參數 說明
sub required
要尋找的子字串。
start intNone; 預設為 0
限制從這個位置搜尋。
end intNone;預設為 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 required
要尋找的子字串。
start intNone; 預設為 0
限制從這個位置搜尋。
end intNone;預設為 None
。 可選位置,用於限制搜尋。

isalnum

bool string.isalnum()

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

isalpha

bool string.isalpha()

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

isdigit

bool string.isdigit()

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

islower

bool string.islower()

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

isspace

bool string.isspace()

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

istitle

bool string.istitle()

如果字串為大寫,且至少包含一個字元,則傳回 True。也就是說,每個大寫字元後面都必須接著一個未區分大小寫的字元 (例如空格),每個小寫字元後面也必須接著一個區分大小寫的字元 (例如大寫或小寫)。

isupper

bool string.isupper()

如果字串中的所有大小寫字元均為大寫,且至少包含一個字元,則傳回 True。

彙整

string string.join(elements)

傳回字串,其中引數的字串元素已使用此字串做為分隔符來連接。範例:
"|".join(["a", "b", "c"]) == "a|b|c"

參數

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

string string.lower()

傳回此字串的小寫版本。

lstrip

string string.lstrip(chars=None)

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

參數

參數 說明
chars 字串None;預設為 None
。 移除的字元,如果為 None,則會移除所有空格。

分區

tuple string.partition(sep)

在第一次出現分隔符 sep 時,將輸入字串分割,並以 (前面、分隔符、後面) 的形式傳回三個元素的元組。如果輸入字串不含分隔符,則會傳回 (self, '', '')。

參數

參數 說明
sep required
要分割的字串。

removeprefix

string string.removeprefix(prefix)

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

參數

參數 說明
prefix 必要
如果存在,則移除前置字元。

removesuffix

string string.removesuffix(suffix)

如果字串結尾為 suffix,則傳回新字串,並移除尾碼。否則會傳回字串。

參數

參數 說明
suffix 必要
如果有這個字尾,就移除。

取代

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

傳回字串的副本,其中 old 出現的次數已替換為 new,並可選擇將替換次數限制為 count

參數

參數 說明
old required
要替換的字串。
new required
要替換的字串。
count 預設為 -1
Replacement 的上限數量。如果省略或值為負數,則沒有限制。

rfind

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

傳回找到 sub 的最後一個索引,如果沒有這樣的索引,則傳回 -1,可選擇限制為 [start:end]start 包含和 end 排除。

參數

參數 說明
sub 必填
要尋找的子字串。
start intNone; 預設為 0
限制從這個位置搜尋。
end intNone;預設為 None
。 可選位置,用於限制搜尋。

rindex

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

傳回找到 sub 的最後一個索引,如果沒有此索引,則會擲回錯誤,可選擇限制為 [start:end]start 為包含,end 為排他。

參數

參數 說明
sub required
要尋找的子字串。
start intNone; 預設為 0
限制從這個位置搜尋。
end intNone;預設為 None
。 可選位置,用於限制搜尋。

rpartition

tuple string.rpartition(sep)

在上次出現的分隔符 sep 處,將輸入字串分割,並以 (前面、分隔符、後面) 的形式,將結果分割區傳回為三個元素的元組。如果輸入字串不含分隔符,rpartition 會傳回 ('', '', self)。

參數

參數 說明
sep required
要分割的字串。

rsplit

list string.rsplit(sep, maxsplit=None)

傳回字串中所有字詞的清單,並使用 sep 做為分隔符,可選擇將分割次數限制為 maxsplit。除了從右側分割之外,這個方法的運作方式與 split() 相同。

參數

參數 說明
sep required
要分割的字串。
maxsplit intNone;預設值為 None
。 分割的最大數量。

rstrip

string string.rstrip(chars=None)

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

參數

參數 說明
chars 字串None;預設為 None
。 移除的字元,如果為 None,則會移除所有空格。

斯普利特

list string.split(sep, maxsplit=None)

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

參數

參數 說明
sep required
要分割的字串。
maxsplit int;或 None; 預設值為 None
分割的最大數量。

splitlines

sequence string.splitlines(keepends=False)

會在行結尾處 ('\n'、'\r\n'、'\r') 分割字串,並將結果傳回為可變動的清單。

參數

參數 說明
keepends 預設值為 False
是否應在產生的清單中加入換行符號。

startswith

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

如果字串開頭為 sub,則傳回 True,否則傳回 False,可選擇限制為 [start:end]start 為包含,end 為排除。

參數

參數 說明
sub 字串;或字串元組; 必要
要比對的前置字串 (或其他前置字串的元組)。
start intNone;預設為 0
。 測試從這個位置開始。
end int;或 None; 預設為 None
在此位置停止比較。

條紋

string string.strip(chars=None)

傳回字串的副本,其中會移除 chars 中出現的前置或尾隨字元。請注意,chars 既不是前置字串也不是後置字串:系統會移除其值的所有組合:
"aabcbcbaa".strip("ab") == "cbc"

參數

參數 說明
chars 字串None;預設為 None
。 移除的字元,如果為 None,則會移除所有空格。

title

string string.title()

將輸入的字串轉換為詞首大寫,也就是每個字詞開頭為大寫字母,其餘字母則為小寫。在這個脈絡中,字詞是指字母序列。這個方法不支援輔助的 Unicode 字元。

較高

string string.upper()

傳回此字串的大寫版本。