字符串

报告问题 查看源代码 每夜 build · 8.0 · 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 表示包括 subend 表示不包括 sub

参数

参数 说明
sub 必需
要统计的子字符串。
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 为包括 sub 在内的范围,end 为不包括 sub 在内的范围。

参数

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

查找

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

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

参数

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

partition

tuple string.partition(sep)

在分隔符 sep 首次出现的位置拆分输入字符串,并将生成的分区作为三元组(before、separator、after)的形式返回。如果输入字符串不包含分隔符,则分区会返回 (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 会返回(“”,“”,“”)。

参数

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

split

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 表示包括 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()

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