字符串

报告问题 查看源代码 每夜 build · 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 string; 必需
要计算的子字符串。
start int;或 None; 默认为 0
将搜索范围限制为从此位置开始。
end int;或 None; 默认为 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 为包括 start 在内的范围,end 为不包括 end 在内的范围。

参数

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

查找

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

返回找到 sub 的第一个索引,如果不存在此类索引,则返回 -1,可选择限制为 [start:end]start 表示包括该索引,end 表示不包括该索引。

参数

参数 说明
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,则移除所有空格。

partition

tuple string.partition(sep)

在分隔符 sep 首次出现时拆分输入字符串,并将生成的分区以形式(之前、分隔符、之后)的三元素元组的形式返回。如果输入字符串不包含分隔符,则分区会返回 (self, '', '')。

参数

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

removeprefix

string string.removeprefix(prefix)

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

参数

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

removesuffix

string string.removesuffix(suffix)

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

参数

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

替换

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

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

参数

参数 说明
old string; 必需
要替换的字符串。
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 最后一次出现时拆分输入字符串,并以形式(之前、分隔符、之后)的三元素元组形式返回生成的分区。如果输入字符串不包含分隔符,则 rpartition 会返回(“”,“”,“”)。

参数

参数 说明
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 string;或 None; 默认值为 None
要移除的字符,如果为 None,则为全部空格。

split

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 表示包括 subend 表示不包括 sub

参数

参数 说明
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()

返回此字符串的大写版本。