创建与转换¶
操作¶
方法¶
判断类(14)¶
isalpha¶
str.isalpha()
如果字符串中至少有一个字符且所有字符都是字母则返回 True ,否则返回 False
a = "ATCGatcg"
b = "1234"
c = "1234ATCG"
d = ""
print(a.isalpha()) # True
print(b.isalpha()) # False
print(c.isalpha()) # False
print(d.isalpha()) # False
isupper¶
str.isupper()
如果字符串中有区分大小写的字符(一般是英文字符)且均为大写则返回 True ,否则返回 False
a = "ATCGatcg"
b = "1234ATCGATCG"
c = "ATCGATCG"
d = "1234atcgatcg"
e = "atcgatcg"
f = ""
print(a.isupper()) # False
print(b.isupper()) # True
print(c.isupper()) # True
print(d.isupper()) # False
print(e.isupper()) # False
print(f.isupper()) # False
islower¶
str.islower()
如果字符串中有区分大小写的字符(一般是英文字符)且均为小写则返回 True ,否则返回 False
a = "ATCGatcg"
b = "1234ATCGATCG"
c = "ATCGATCG"
d = "1234atcgatcg"
e = "atcgatcg"
f = ""
print(a.islower()) # False
print(b.islower()) # False
print(c.islower()) # False
print(d.islower()) # True
print(e.islower()) # True
print(f.islower()) # False
istitle¶
str.istitle()
如果字符串中至少有一个字符且为标题字符串则返回 True ,即字符串中每个英文单词均首字母大写。 否则返回 False
a = "123 Nanjing Medical University"
b = "123Nanjing"
c = "nanjing"
d = "Nanjing medical University"
e = ""
print(a.istitle()) # True
print(b.istitle()) # True
print(c.istitle()) # False
print(d.istitle()) # False
print(e.istitle()) # False
isnumeric、isdigit、isdecimal¶
str.isnumeric()、str.isdigit()、str.isdecimal()
如果字符串中至少有一个字符且所有字符均为数字则返回 True ,否则返回 False
isnumeric:实际判断的是数值字符。数值字符包括数字字符,以及所有在 Unicode 中设置了数值特性属性的字符,例如 U+2155, VULGAR FRACTION ONE FIFTH。 正式的定义为:数值字符就是具有特征属性值 Numeric_Type=Digit, Numeric_Type=Decimal 或 Numeric_Type=Numeric 的字符。
isdigit:实际判断的是数字字符。数字字符包括十进制字符和需要特殊处理的数字,如兼容性上标数字。这包括了不能用来组成 10 进制数的数字,如 Kharosthi 数。 严格地讲,数字是指属性值为 Numeric_Type=Digit 或 Numeric_Type=Decimal 的字符。
isdecimal:实际判断的是十进制字符。十进制字符指那些可以用来组成10进制数字的字符,例如 U+0660 ,即阿拉伯字母数字0 。 严格地讲,十进制字符是 Unicode 通用类别 "Nd" 中的一个字符。
a = "ATCGatcg"
b = "1234"
c = "1234ATCG"
d = ""
print(a.isnumeric()) # False
print(b.isnumeric()) # True
print(c.isnumeric()) # False
print(d.isnumeric()) # False
print(a.isdigit()) # False
print(b.isdigit()) # True
print(c.isdigit()) # False
print(d.isdigit()) # False
print(a.isdecimal()) # False
print(b.isdecimal()) # True
print(c.isdecimal()) # False
print(d.isdecimal()) # False
isalnum¶
str.isalnum()
如果字符串中至少有一个字符且所有字符都是字母或数字,则返回 True , 否则返回 False
a = "ATCGatcg"
b = "1234"
c = "1234ATCG"
d = "1234ATCG@# "
e = ""
print(a.isalnum()) # True
print(b.isalnum()) # True
print(c.isalnum()) # True
print(d.isalnum()) # False
print(e.isalnum()) # False
isspace¶
str.isspace()
如果字符串中至少有一个字符且均为空白字符(包括空格、制表符、换行符等),返回 True ,否则返回 False
isascii¶
str.isascii()
如果字符串为空字符串或均为 ASCII 字符(包括控制字符和可打印字符),返回 True ,否则返回 False
a = "1234ATCG@# " # ASCII可打印字符
b = "" # 空字符串
c = "你好" # 非ASCII类可打印字符
d = "\t" # ASCII控制字符
print(a.isascii()) # True
print(b.isascii()) # True
print(c.isascii()) # False
print(d.isascii()) # True
isprintable¶
str.isprintable()
如果字符串为空字符串或均为可打印字符,返回 True ,否则返回 False
不可打印字符是在 Unicode 字符数据库中被定义为 "Other" 或 "Separator" 的字符,如转义字符,例外情况是 ASCII 空格字符 (0x20) 被视作可打印字符。
a = "1234ATCG@# " # ASCII可打印字符
b = "" # 空字符串
c = "你好" # 非ASCII类可打印字符
d = "\t" # ASCII控制字符
print(a.isprintable()) # True
print(b.isprintable()) # True
print(c.isprintable()) # True
print(d.isprintable()) # False
isidentifier¶
str.isidentifier()
如果字符串是有效的标识符,返回 True,否则返回 False
startswith¶
str.startswith(prefix[, start[, end]])
如果字符串[start,end)的子字符串以指定的 prefix 开始则返回 True,否则返回 False
-
prefix:可以是前缀字符串或前缀字符串组成的元组(其中之一满足即可)
-
start:开始索引,可选,默认从0开始
-
end:结束索引,可选,默认到字符串末尾
a = "ATCGGGCGGGTTTATTTCCTATTTTTATCG"
print(a.startswith("ATCG")) # True
print(a.startswith(("TTCC", "CGTA", "ATCG"))) # True
print(a.startswith(("TTCC", "CGTA", "ATCG"), 15)) # True
print(a.startswith(("TTCC", "CGTA", "ATCG"), 15, 18)) # False
print(a.startswith(("TTCC", "CGTA", "ATCG"), 15, 19)) # True
endswith¶
str.endswith(suffix[, start[, end]])
如果字符串[start,end)的子字符串以指定的 suffix 结尾则返回 True,否则返回 False
-
suffix:同startswith
-
start:同startswith
-
end:同startswith
a = "ATCGGGCGGGTTTATTTCCTATTTTTATCG"
print(a.endswith("ATCG")) # True
print(a.endswith(("TTCC", "CGTA", "ATCG"))) # True
print(a.endswith(("TTCC", "CGTA", "ATCG"), 15)) # True
print(a.endswith(("TTCC", "CGTA", "ATCG"), 0, 18)) # False
print(a.endswith(("TTCC", "CGTA", "ATCG"), 0, 19)) # True
索引类(4)¶
find¶
str.find(sub[, start[, end]])
返回子字符串 sub 在[start, end)范围内被找到的最小索引(子字符串的第一个字符的索引)并返回,未找到则返回-1
-
sub:子字符串
-
start:开始索引,可选,默认从0开始
-
end:结束索引,可选,默认到字符串末尾
a = "ATCGGGCGGGTTTATTTCCTATTTTTATCG"
print(a.find("ATCG")) # 0
print(a.find("ATCG", 15)) # 26
print(a.find("ATCG", 15, 29)) # -1
print(a.find("ATCG", 15, 30)) # 26
index¶
str.index(sub[, start[, end]])
同str.find(),但找不到子字符串会报错
a = "ATCGGGCGGGTTTATTTCCTATTTTTATCG"
print(a.index("ATCG")) # 0
print(a.index("ATCG", 15)) # 26
print(a.index("ATCG", 15, 29)) # ValueError: substring not found
print(a.index("ATCG", 15, 30)) # 26
rfind¶
str.rfind(sub[, start[, end]])
同str.find(),但找最大索引(子字符串的第一个字符的索引)
rindex¶
str.rindex(sub[, start[, end]])
同str.index(),但找最大索引(子字符串的第一个字符的索引)
填充类(4)¶
center¶
str.center(width[, fillchar])
返回长度为 width 的字符串副本,原字符串在其正中。 使用指定的 fillchar 填充空位 (默认使用空格符)。 如果 width ≤ 原字符串长度则返回原字符串的副本。
a = "ATCG"
print(a.center(10)) # ATCG
print(a.center(10, "*")) # ***ATCG***
print(a.center(2)) # ATCG
ljust¶
str.ljust(width[, fillchar])
同str.center(),但原字符串在返回副本中靠左对齐
rjust¶
str.rjust(width[, fillchar])
同str.center(),但原字符串在返回副本中靠右对齐
zfill¶
str.zfill(width)
返回原字符串的副本,在左边填充'0' 使其长度变为width。 正负值前缀 ('+'/'-') 的处理方式是在正负符号之后填充。 如果 width ≤ 原字符串长度 则返回原字符串的副本。
a = "ATCG"
b = "+ATCG"
print(a.zfill(10)) # 000000ATCG
print(b.zfill(10)) # +00000ATCG
print(a.zfill(2)) # ATCG
拆分类(6)¶
split¶
lsplit¶
rsplit¶
splitlines¶
partition¶
rpartition¶
移除类(3)¶
strip¶
str.strip([chars])
返回原字符串的副本,移除其中的前导和末尾字符。 chars 参数为指定要移除字符的字符串,如果省略或为 None,则 默认移除空白符(包括空格、换行符等)。 实际上 chars 参数并非指定单个前缀或后缀,而是会移除其中字符的所有组合(即移除的字符串连续含有chars中的一个或多个字符)
lstrip¶
str.lstrip([chars])
同str.strip(),但只移除前导字符
rstrip¶
str.rstrip([chars])
同str.strip(),但只移除末尾字符
计数类(1)¶
count¶
str.count(sub[, start[, end]])
返回子字符串 sub 在 [start, end) 范围内非重叠出现的次数
-
sub:子字符串
-
start:开始索引,可选,默认从0开始
-
end:结束索引,可选,默认到字符串末尾
a = "ATCGGGGCCCTTTAGGTC"
print(a.count("GG")) # 3
print(a.count("GG", 4)) # 2
print(a.count("GG", 4, 15)) # 1
print(a.count("GG", 4, 16)) # 2
转换类(7)¶
capitalize¶
casefold¶
upper¶
lower¶
swapcase¶
title¶
translate¶
替换类(2)¶
replace¶
str.replace(old, new[, count])
用 new 替换子字符串 old 的所有出现次数,并返回该字符串的副本。如果给定了可选参数 count,则只替换前 count 次出现的字符串。
a = "ATCGGGGCCCTTTAGGTC"
print(a.replace("GG", "gg")) # ATCggggCCCTTTAggTC
print(a.replace("GG", "gg", 1)) # ATCggGGCCCTTTAGGTC
expandtabs¶
str.expandtabs(tabsize*=*8)
返回字符串的副本,其中所有的制表符会由一个或多个空格替换,使得制表符前的字符+制表符替换后的空格=tabsize(默认为8)的最小倍数。当tabsize>最长子字符串长度时,可实现列的对齐。
a = "name\tsex\tage\tvocation\tinterest\nxiaoming\tmale\t23\tstudent\tpython"
print(a.expandtabs())
"""
name sex age vocation interest
xiaoming male 23 student python
"""
print(a.expandtabs(tabsize=9))
"""
name sex age vocation interest
xiaoming male 23 student python
"""
拼接类(1)¶
join¶
str.join(iterable)
返回一个由 iterable 中的字符串拼接而成的字符串。 如果 iterable 中存在任何非字符串值则会引发 TypeError。 调用该方法的字符串将作为元素之间的分隔。
编码类(1)¶
encode¶
格式化类(2)¶
format¶
见格式化
