字符串

报告问题 查看源代码

一种支持字符串的语言内置类型。字符串字面量示例:
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"]
不允许隐式串联字符串;请改用 + 运算符。比较运算符执行字典顺序比较;使用 == 测试是否相等。

成员

capitalize

string string.capitalize()

返回字符串副本,其中第一个字符(如果有)大写,其余字符小写。此方法不支持非 ASCII 字符。

计数

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

返回字符串中子字符串“sub”的(不重叠)出现的次数,可选择限制为 [start:end]start 包括边界值,end 不包括边界值。

参数

参数 说明
sub required
要计算的子字符串。
start int;或 None;默认值为 0
限制为从此位置搜索。
end int;或 None;默认为 None
可选位置,将范围限定在它之前。

元素

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;或tuple/字符串s; required
要匹配的后缀(或元组)。
start int;或 None;默认值为 0
测试从此位置开始。
end int;或 None;默认为停止比较的 None
可选位置。

find

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

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

参数

参数 说明
sub required
要查找的子字符串。
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 required
要查找的子字符串。
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。

join

string string.join(elements)

返回一个字符串,其中参数的字符串元素已由此字符串连接作为分隔符。示例:
"|".join(["a", "b", "c"]) == "a|b|c"

参数

参数 说明
elements required
要联接的对象。

3 年

string string.lower()

返回该字符串的小写版本。

lstrip

string string.lstrip(chars=None)

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

参数

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

partition

tuple string.partition(sep)

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

参数

参数 说明
sep required
要拆分的字符串。

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 required
要替换的字符串。
new required
要替换的字符串。
count 默认值为 -1
替换次数上限。如果省略或值为负数,则表示无限制。

rfind

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

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

参数

参数 说明
sub required
要查找的子字符串。
start int;或 None;默认值为 0
限制为从此位置搜索。
end int;或 None;默认为 None
可选位置,将范围限定在它之前。

rindex

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

返回找到 sub 的最后一个索引;如果不存在此类索引,则会引发错误,可以选择限制为 [start:end]start 包含边界值,end 不包含边界值。

参数

参数 说明
sub required
要查找的子字符串。
start int;或 None;默认值为 0
限制为从此位置搜索。
end int;或 None;默认为 None
可选位置,将范围限定在它之前。

rpartition

tuple string.rpartition(sep)

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

参数

参数 说明
sep required
要拆分的字符串。

rsplit

list string.rsplit(sep, maxsplit=None)

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

参数

参数 说明
sep required
要拆分的字符串。
maxsplit int;或 None;默认值为 None
拆分的最大数量。

rstrip

string string.rstrip(chars=None)

返回字符串的副本,其中 chars 中出现的尾随字符会被移除。请注意,chars 不是后缀:系统会移除其值的所有组合:
"abcbaa".rstrip("ab") == "abc"

参数

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

分片

list string.split(sep, maxsplit=None)

返回字符串中所有字词的列表,使用 sep 作为分隔符,可以选择将拆分数量限制为 maxsplit

参数

参数 说明
sep required
要拆分的字符串。
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;或“strings”的元组; required
要匹配的前缀(或替代前缀的元组)。tuple
start int;或 None;默认值为 0
测试从此位置开始。
end int;或 None;默认值为 None
停止在此位置进行比较。

strip

string string.strip(chars=None)

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

参数

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

title

string string.title()

将输入字符串转换为词首字母大写,即每个单词都以大写字母开头,而其余字母则小写。在此上下文中,一个单词严格意义上是指一系列字母。此方法不支持补充的 Unicode 字符。

upper

string string.upper()

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