字符串

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

参数

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

参数

参数 说明
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 首次出现时拆分输入字符串,并以形式(前、分隔符、后)的三元素元组形式返回生成的分区。如果输入字符串不包含分隔符,则分区会返回 (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 required
要替换的字符串。
new required
要替换的字符串。
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 最后一次出现时拆分输入字符串,并以形式(前、分隔符、后)的三元素元组形式返回生成的分区。如果输入字符串不包含分隔符,则 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 string;或 None;默认值为 None
要移除的字符,或所有空格(如果无)。

title

string string.title()

将输入字符串转换为标题格式,即每个字词都以大写字母开头,其余字母均为小写。在本上下文中,字词严格地指字母序列。此方法不支持补充 Unicode 字符。

上半部

string string.upper()

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