字符串

一种支持字符串的语言内置类型。字符串字面量示例:
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
可选位置,用于限制搜索范围。

elems

sequence string.elems()

返回一个可迭代的值,其中包含字符串的连续单元素子字符串。与 [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 int;或 None; 默认值为 0
测试从该位置开始。
end int;或 None; 默认值为 None
可选的停止比较位置。

查找

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

返回找到 sub 的第一个索引;如果不存在此类索引,则返回 -1;可以选择限制为 [start:end](包含)和 end(不包含),start(包含)。

参数

参数 说明
sub string; 必需
要查找的子字符串。
start int;或 None; 默认值为 0
限制为从该位置进行搜索。
end int;或 None; 默认值为 None
可选位置,用于限制搜索范围。

格式

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。

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 必需
要联接的对象。

3 年

string string.lower()

返回相应字符串的小写版本。

lstrip

string string.lstrip(chars=None)

返回移除了 chars 中所列前导字符的字符串副本。请注意,chars 不是前缀:系统会移除其值的所有组合:
"abcba".lstrip("ba") == "cba"

参数

参数 说明
chars 字符串;或 None; 默认值为 None
要移除的字符,如果为 None,则移除所有空格。

分区

tuple string.partition(sep)

在分隔符 sep 首次出现的位置拆分输入字符串,并以三元素元组(格式为 [before, separator, after])的形式返回拆分结果。如果输入字符串不包含分隔符,则 partition 返回 (self, '', '')。

参数

参数 说明
sep string; 必需
要拆分的字符串。

removeprefix

string string.removeprefix(prefix)

如果字符串以 prefix 开头,则返回一个移除了前缀的新字符串。否则,返回该字符串。

参数

参数 说明
prefix string; 必需
要移除的前缀(如果存在)。

removesuffix

string string.removesuffix(suffix)

如果字符串以 suffix 结尾,则返回一个移除了该后缀的新字符串。否则,返回该字符串。

参数

参数 说明
suffix string; required
The suffix to remove if present.

替换

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

返回一个字符串副本,其中 old 的出现次数已替换为 new,可以选择将替换次数限制为 count

参数

参数 说明
old string; required
The string to be replaced.
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
可选位置,用于限制搜索范围。

rpartition

tuple string.rpartition(sep)

在分隔符 sep 最后一次出现的位置拆分输入字符串,并以三元素元组(格式为 [before, separator, after])的形式返回拆分后的结果。如果输入字符串不包含分隔符,则 rpartition 返回 ('', '', self)。

参数

参数 说明
sep string; 必需
要拆分的字符串。

rsplit

list string.rsplit(sep, maxsplit=None)

返回字符串中所有字词的列表,使用 sep 作为分隔符,并可选择将拆分次数限制为 maxsplit。除了从右侧拆分之外,此方法的行为方式与 split() 相同。

参数

参数 说明
sep string; 必需
要拆分的字符串。
maxsplit int;或 None; 默认值为 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 string; 必需
要拆分的字符串。
maxsplit int;或 None; 默认值为 None
拆分次数上限。

splitlines

sequence string.splitlines(keepends=False)

在行边界处(“\n”“\r\n”“\r”)拆分字符串,并将结果作为新的可变列表返回。

参数

参数 说明
keepends bool; 默认值为 False
是否应在结果列表中包含换行符。

startswith

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

如果字符串以 sub 开头,则返回 True,否则返回 False;可以选择性地将范围限制为 [start:end](含)到 start(含),但不包括 end

参数

参数 说明
sub 字符串;或 字符串元组;必需参数
要匹配的前缀(或替代前缀元组)。
start int;或 None; 默认值为 0
测试从该位置开始。
end int;或 None; 默认值为 None
在此位置停止比较。

strip

string string.strip(chars=None)

返回移除了 chars 中出现的前导或尾随字符的字符串副本。请注意,chars 既不是前缀也不是后缀:系统会移除其值的所有组合:
"aabcbcbaa".strip("ab") == "cbc"

参数

参数 说明
chars 字符串;或 None; 默认值为 None
要移除的字符,如果为 None,则移除所有空格。

title

string string.title()

将输入字符串转换为词首字母大写格式,即每个字词的首字母大写,其余字母小写。在此背景下,“字词”严格来说是指字母序列。此方法不支持补充 Unicode 字符。

上半部

string string.upper()

返回相应字符串的大写版本。