Skip to content

创建与转换

操作

方法

判断类(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

a = "   \t\n"
b = ""
print(a.isspace())    # True
print(b.isspace())    # 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

a = "1234ATCG@# "
b = "ATCG_atcg"
print(a.isidentifier())    # False
print(b.isidentifier())    # True

startswith

str.startswith(prefix[, start[, end]])

如果字符串[start,end)的子字符串以指定的 prefix 开始则返回 True,否则返回 False

  1. prefix:可以是前缀字符串或前缀字符串组成的元组(其中之一满足即可)

  2. start:开始索引,可选,默认从0开始

  3. 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

  1. suffix:同startswith

  2. start:同startswith

  3. 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

  1. sub:子字符串

  2. start:开始索引,可选,默认从0开始

  3. 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(),但找最大索引(子字符串的第一个字符的索引)

a = "ATCGGGCGGGTTTATTTCCTATTTTTATCG"
print(a.rfind("ATCG"))    # 26

rindex

str.rindex(sub[, start[, end]])

str.index(),但找最大索引(子字符串的第一个字符的索引)

a = "ATCGGGCGGGTTTATTTCCTATTTTTATCG"
print(a.rindex("ATCG"))    # 26

填充类(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(),但原字符串在返回副本中靠左对齐

a = "ATCG"    
print(a.ljust(10, "*"))   # ATCG******

rjust

str.rjust(width[, fillchar])

str.center(),但原字符串在返回副本中靠右对齐

a = "ATCG"
print(a.rjust(10, "*"))   # ******ATCG

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中的一个或多个字符)

a = "  *@#ATCG#**@    "
print(a.strip())        # *@#ATCG#**@
print(a.strip("*# @"))  # ATCG

lstrip

str.lstrip([chars])

str.strip(),但只移除前导字符

a = "  *@#ATCG#**@    "
print(a.lstrip("*# @"))    # ATCG#**@

rstrip

str.rstrip([chars])

str.strip(),但只移除末尾字符

a = "  *@#ATCG#**@    "
print(a.rstrip("*# @"))    #   *@#ATCG

计数类(1)

count

str.count(sub[, start[, end]])

返回子字符串 sub 在 [start, end) 范围内非重叠出现的次数

  1. sub:子字符串

  2. start:开始索引,可选,默认从0开始

  3. 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。 调用该方法的字符串将作为元素之间的分隔。

print("*".join(["1", "2", "3"]))    # 1*2*3
print("*".join([1, "2", "3"]))      # TypeError

编码类(1)

encode

格式化类(2)

format

见格式化

format_map

函数

格式化

转义字符

image.png

Comments