Python

关于字符串的操作

字符串

截取

  1. 索引
    • []
  2. len
    • 返回可迭代对象的长度

代码示例:

foo = 'ABCDEFG'
# A:0,B:1,C:2,D:3,E:4,F:5,G:6
# A:-7,B:-6,C:-5,D:-4,E:-3,F:-2,G:-1
print(foo[0])  # A
print(foo[-1])  # G

foo = 'ABCDEFG'
print(len(foo))

切片

代码示例:

foo = 'ABCDEFG'
# A:0,B:1,C:2,D:3,E:4,F:5,G:6
# A:-7,B:-6,C:-5,D:-4,E:-3,F:-2,G:-1
print(foo[1:3])
print(foo[-1:-3:-1])

print(foo[1:])
print(foo[-3:])

print(foo[:3])
print(foo[:-1])

print(foo[1:-1])
print(foo[:])

# 变种(不管间隔为多少,输出的方向的第一个值间隔为1,从第二个值开始,开始套用设定的间隔):
print(foo[::2])  # 步长2(从左到右)
print(foo[::-2])  # 步长-2(从右到左)

常见操作

方法注释
find返回指定的元素下标(方向从左到右,只要遇到一个符合要求的,就返回符合要求的元素的下标,如果没有找到任何一个符合要求的就返回-1)
rfind返回指定元素下标(方向从右到左,只要遇到一个符合要求的,就返回符合要求的元素的下标,如果没有找到任何一个符合要求的就返回-1)
count统计元素出现的次数
index返回指定的元素下标(只要遇到一个符合要求的,就返回符合要求的元素的下标,如果没有找到任何一个符合要求的就报错)

代码示例:

foo = 'ABCDEFGACG'
print(foo.find('C'))
print(foo.rfind('E'))
print(foo.count('A'))
print(foo.index('K'))

判断

方法注释
startswith是否以指定的值开头的
endswith是否以指定的值结尾的
isalpha是否是纯字母组成的
isdigit是否是纯数字组成的
isalnum是否是数字与字母组成的(不包含特殊符号)
isspace是否是纯空格组成的(空字符串不算)
isupper是否是纯大写字母组成的
islower是否是纯小写字母组成的

代码示例:

foo = 'ABCDEFG'
print(foo.startswith())
print(foo.endswith())
print(foo.isalpha())
print(foo.isdigit())
print(foo.isalnum())
print(foo.isspace())
print(foo.isupper())
print(foo.islower())

替换、分割、字母转换

方法注释
replace替换指定字符串(默认全部替换)
split左切割
rsplit右切割
splitlines按行切割
partition只左切割一次
rpartition只右切割一次
capitalize单个首字母大写
title多个首字母大写
upper全部大写
lower全部小写

代码示例:

foo = 'ABCDEFGACG'
print(foo.replace('C','A'))  # 将C全部替换为A
print(foo.replace('C','A',1))  # 将C替换为A(只替换一次)

foo = 'ABCDEFGACG'
bar = """ABCD
EFG
"""
print(foo.split('C'))  # 左全切
print(foo.split('C',1))  # 左只切一次

print(foo.rsplit('C'))  # 右全切
print(foo.rsplit('C',1))  # 右只切一次

print(bar.splitlines())  # False(不包含换行符)
print(bar.splitlines(True))  # True(保留换行符)

print(foo.partition('C'))  # 左只切一次

print(foo.rpartition('C'))  # 左只切一次

# 变种:
a,b,c = 'a','b','c'  # 多变量赋值
a,b,c = input('请输入:').split(' ')  # 多变量输入赋值,以空格作为分隔符切割

# 交换变量的值
a,b,c = c,a,b  # a = c,b = a,c = b

foo = 'A B C'
bar = 'a b c'

print(bar.capitalize())
print(bar.title())
print(bar.upper())
print(foo.lower())

空格处理、对齐、拼接

方法注释
strip去掉左右边空格(不去掉中间)
lstrip去掉左边空格
rstrip去掉右边空格
center居中对齐
ljust左对齐
rjust右对齐
join字符串拼接

代码示例:

foo = '   foo   '
bar = 'bar'
n = ['a','b','c']
print(foo.strip())
print(foo.lstrip())
print(foo.rstrip())
print(bar.center(30))  # 在30个字符长度居中对齐
print(bar.ljust(30))  # 在30个字符长度左对齐
print(bar.rjust(30))  # 在30个字符长度右对齐
print(n.join())  # abc
print('#'.join(['a','b','c']))  # a#b#c