字串

回報問題 查看來源

支援字串的內建語言類型。字串常值範例:
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
指定位置,限制搜尋範圍。

象牙

sequence string.elems()

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

結尾為

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

如果字串結尾是 sub,則傳回 True,否則傳回 True,否則可選擇限制為 [start:end]start 含頭尾和 end

參數

參數 說明
sub string; 或 stringtuple;必要
用於比對的後置字串 (或額外後置字串)。
start intNone;預設值為 0
從這個位置開始測試。
end intNone;預設值為 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 預設值為 {}
引數的字典。

index

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

傳回找到 sub 的第一個索引,如果沒有這類索引,就會引發錯誤。您可以選擇將 [start:end]start 限制為包含範圍的值,並將 end 排除。

參數

參數 說明
sub 必填
要尋找的子字串。
start intNone;預設值為 0
限制搜尋這個位置的結果。
end intNone;預設為 None
指定位置,限制搜尋範圍。

伊斯蘭曆

bool string.isalnum()

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

是 Alpha 版

bool string.isalpha()

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

數字

bool string.isdigit()

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

較慢

bool string.islower()

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

太空

bool string.isspace()

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

istitle

bool string.istitle()

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

Isupper

bool string.isupper()

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

join

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

分區

tuple string.partition(sep)

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

參數

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

移除前置字元

string string.removeprefix(prefix)

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

參數

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

移除後置字串

string string.removesuffix(suffix)

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

參數

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

取代

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

傳回字串的副本,其中顯示的 old 已替換為 new,選擇性地將取代次數限制為 count

參數

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

尋找碼頭

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

傳回找到 sub 的最後一個索引;如果沒有這類索引,則傳回 -1;如果不存在,則為 -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
指定位置,限制搜尋範圍。

重新分區

tuple string.rpartition(sep)

分割分隔符 sep 最後一個出現時的輸入字串,並以表單的三元素元組 (之前、分隔符、之後) 傳回產生的分區。如果輸入字串不包含分隔符,rpartition 會傳回 (「', '', 」)。

參數

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

塊狀

list string.rsplit(sep, maxsplit=None)

傳回字串中所有字詞的清單,使用 sep 做為分隔符,並視需要將分割次數限制為 maxsplit。除了從右側分割以外,此方法的行為類似 split()。

參數

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

條紋

string string.rstrip(chars=None)

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

參數

參數 說明
chars string;或 None;預設值為 None

split

list string.split(sep, maxsplit=None)

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

參數

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

分割線

sequence string.splitlines(keepends=False)

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

參數

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

startswith

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

如果字串以 sub 開頭,則傳回 True,否則傳回 True,否則可選擇限制為 [start:end]start 含頭尾和 end

參數

參數 說明
sub string; 或 stringtuple;必要
要比對的前置字串 (或額外前置字串的組合)。
start intNone;預設值為 0
從這個位置開始測試。
end intNone;預設值為 None

長條

string string.strip(chars=None)

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

參數

參數 說明
chars string;或 None;預設值為 None

title

string string.title()

將輸入字串轉換成首字母大寫格式,也就是每個字的開頭都是大寫英文字母,其餘的字母都是小寫。在這裡,字詞是指明確的字母序列。此方法不支援補充的萬國碼 (Unicode) 字元。

較高

string string.upper()

傳回此字串的大寫版本。