string

回報問題 查看來源 Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

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 string;或 tuplestring;必要
要比對的字尾 (或替代字尾的元組)。
start intNone;預設值為 0
從這個位置開始測試。
end int; 或 None; 預設值為 None
停止比較的選用位置。

尋找

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

傳回找到 sub 的第一個索引,如果沒有這類索引,則傳回 -1,並可選擇限制為 [start:end],其中 start 為含頭不含尾,而 end 為不含頭不含尾。

參數

參數 說明
sub 必要
要尋找的子字串。
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] 但不含 endstart

參數

參數 說明
sub 必要
要尋找的子字串。
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 stringNone;預設值為 None
要移除的字元,或 None 時的所有空白字元。

分區

tuple string.partition(sep)

在第一次出現分隔符 sep 的位置分割輸入字串,並以 (before、separator、after) 形式傳回產生的分割區,做為三元素元組。如果輸入字串不含分隔符,partition 會傳回 (self、''、'')。

參數

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

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 必要
要取代的字串。
new 必要
要替換的字串。
count 預設值為 -1
替換次數上限。如未填寫此欄位,或值為負數,則代表沒有限制。

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 必要
要尋找的子字串。
start intNone;預設值為 0
限制從這個位置搜尋。
end intNone; 預設為 None
可選位置,搜尋範圍會限制在這個位置之前。

rpartition

tuple string.rpartition(sep)

在最後一次出現分隔符 sep 的位置分割輸入字串,並以 (before、separator、after) 形式傳回產生的分割區,做為三元素元組。如果輸入字串不含分隔符號,rpartition 會傳回 ('', '', self)。

參數

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

rsplit

list string.rsplit(sep, maxsplit=None)

傳回字串中的所有字詞清單,並以 sep 做為分隔符,可選擇將分割次數限制為 maxsplit。除了從右側分割外,這個方法的行為與 split() 類似。

參數

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

rstrip

string string.rstrip(chars=None)

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

參數

參數 說明
chars stringNone;預設值為 None
要移除的字元,或 None 時的所有空白字元。

斯普利特

list string.split(sep, maxsplit=None)

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

參數

參數 說明
sep 必要
要分割的字串。
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 string;或 tuplestring;必要
要比對的前置字串 (或替代前置字串的元組)。
start intNone;預設值為 0
從這個位置開始測試。
end intNone;預設值為 None
停止比較的位置。

strip

string string.strip(chars=None)

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

參數

參數 說明
chars stringNone;預設值為 None
要移除的字元,或 None 時的所有空白字元。

title

string string.title()

將輸入字串轉換為詞首字母大寫格式,也就是每個字的首字母大寫,其餘字母小寫。在此脈絡中,「字詞」嚴格來說是指一連串的字母。這個方法不支援補充 Unicode 字元。

較高

string string.upper()

傳回這個字串的大寫版本。