1. sci666首页
  2. 实用技巧
  3. 生物信息学

python中字符串的基本操作汇总

字符串是文本操作的核心,在python中字符串是string类的实例,在string模块中,定义了很多的常量

>>> import string
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.digits
'0123456789'
>>> string.hexdigits
'0123456789abcdefABCDEF'
>>> string.octdigits
'01234567'

主要是数字和字符串,同时也提供了很多的方法,包含以下几类

1. 大小写转换

用法如下

# 首字母大写,其他字符不变
>>> 'abc'.capitalize()
'Abc'
# 全部转换为大写
>>> 'abc'.upper()
'ABC'
# 全装转换为小写
>>> 'abc'.lower()
'abc'
# 全部转换为小写
>>> 'abc'.casefold()
'abc'
# 首字母大写,其他字母小写
>>> 'ABC'.title()
'Abc'
# 大小写互换,大写变小写,小写变大写
>>> 'Abc'.swapcase()
'aBC'

2. 去除空白字符

用法如下

# 去除字符串开头和末尾的空白字符
>>> ' ABC '.strip()
'ABC'
# 去除开头的空白字符
>>> ' ABC '.lstrip()
'ABC '
# 去除末尾的空白字符
>>> ' ABC '.rstrip()
' ABC'

不提供参数的情况下,以上函数的作用就是去除空白字符,也可以提供参数,去除指定字符,示例如下

>>> 'ABC'.strip('C')
'AB'

3. 字符串查找和替换

用法如下

# 从开头查找,返回第一次匹配的索引
>>> 'ABC'.find('A')
0
# 从末尾查找,返回第一次匹配的索引
>>> 'ABC'.rfind('A')
0
# 从开头查找,返回第一次匹配的索引
>>> 'ABC'.index('A')
0
# 从末尾查找,返回第一次匹配的索引
>>> 'ABC'.rindex('A')
0

4.  模式判断

判断字符串是否符合某种特征,用法如下

# 以指定字符开头
>>> 'ABC'.startswith('A')
True
# 以指定字符结尾
>>> 'ABC'.endswith('C')
True
# 是否全是字母
>>> 'ABC'.isalpha()
True
# 是否全是数字
>>> 'ABC'.isnumeric()
False
# 是否全是数字
>>> 'ABC'.isdigit()
False
# 是否全是数字字母
>>> 'ABC'.isalnum()
True
# 是否全是数字字母
>>> 'ABC'.isascii()
True
# 是否全是空白
>>> 'ABC'.isspace()
False
# 是否全是可打印字符
>>> 'ABC'.isprintable()
True
# 是否符合标题样式,首字母大写, 其他字符小写
>>> 'ABC'.istitle()
False
# 是否全是小写字符
>>> 'ABC'.islower()
False
# 是否全是大写字符
>>> 'ABC'.isupper()
True

4.  字符串对齐

将字符串用指定字符填充为等长,用法如下

# 在开头和结尾进行填充,字符串居中对齐
>>> 'ABC'.center(7, '0')
'00ABC00'
# 在开头进行填充,只可以用0填充,右对齐
>>> 'ABC'.zfill(7)
'0000ABC'
# 在末尾进行填充,左对齐
>>> 'ABC'.ljust(7, '1')
'ABC1111'
# 在开头进行填充,右对齐
>>> 'ABC'.rjust(7, '1')
'1111ABC'

5. 字符串的连接与分割

>>> 't'.join(['A', 'B', 'C'])
'AtBtC'
>>> 'AtBtC'.split("t")
['A', 'B', 'C']

相比其他数据类型,字符串的内置方法很多,由此也可以看出字符串的重要性。除了这些基础操作,还需要进一步掌握字符串的格式化,以及正则表达式,这些在后续文章中再详细介绍。

这些可能会帮助到你: 问答社区 | 共享百度SVIP | 留言建议

欢迎入群交流:生信分析群: 732179952 · Meta分析群: 797345521

发表评论

登录后才能评论