字符串

报告问题 查看源代码 每夜版 · 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 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 必需
要查找的子字符串。
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 必需
要查找的子字符串。
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 必需
用于拆分的字符串。

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 int;或 None; 默认值为 0
限制为从该位置进行搜索。
end int;或 None; 默认值为 None
可选位置,用于限制搜索范围。

rindex

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

返回找到 sub 的最后一个索引,如果不存在此类索引,则引发错误,可以选择性地限制为 [start:end](含)到 start(含)的范围,以及 end(不含)的范围。

参数

参数 说明
sub 必需
要查找的子字符串。
start int;或 None; 默认值为 0
限制为从该位置进行搜索。
end int;或 None; 默认值为 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 字符串;或 None; 默认值为 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 字符串;或 字符串元组;必需参数
要匹配的前缀(或替代前缀元组)。
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()

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