写给编程高手的Python教程(03) 字符串

366 阅读2分钟

写给编程高手的Python教程目录

如何拆分含有多种分隔符的字符串

使用re包里的split方法,该方法传入一个正则表达式和要进行分割的字符串,返回一个字符串数组

from re import split
s = 'ab;cd|edfh,iws,a\twsw,as\twqa'
print(split(r'[,;\t|]+', s))

如何判断一个字符串是否以另一个字符串开头或者结尾

使用字符串的endswith方法,该方法可以接收一个字符串元组,如果该字符串以元组中的任意一个字符串结尾,返回True,否则返回False。

from os import listdir
for dir in listdir('.'):
    print(dir, dir.endswith(('.idea', '.py'))) #只能传元组

扩展:stat方法获取到文件的信息,#oct函数转化为八进制的数 print(oct(stat('CH04.py').st_mode))

如何调整字符串中文本的格式

log = '2010-08-01'
from re import sub
print(sub('(\d{4})-(\d{2})-(\d{2})', r'\2/\3/\1', log))

#如何将多个小字符串拼接成一个大的字符串 两个字符串之间的运算

s1 = 'abcdefg'
s2 = '12345'

print(s1 + s2)       # 两个字符串的相加操作,实质上是调用了__add__函数
print(s1.__add__(s2))

print(s1 > s2)       # 两个字符串的比较操作,实质上是调用了__gt__函数
print(s1.__gt__(s2))

拼接列表中的字符串

print(';'.join(['abc','123','xyz']))
print(''.join([str(x) for x in ['abc',123,'xyz']]))

如何对字符串进行左、中、右对齐

s = 'abc'
print(s.ljust(20, '='))
print(s.rjust(20))

扩展:获取字符串集合中字符串的最大长度

max(map(len, d.keys()))

如何去掉字符串中不需要的字符

s = '  abc  123  '
print(s.strip())  #去掉两边的空格
print(s.lstrip()) #去掉左边的空格
s = '---abc+++'
print(s.strip('-+')) #去掉两边的'-'或'+'

s = 'abc+1-23'
print(s[:3] + s[4:])
print(s.replace('+', ''))

from re import sub

print(sub(r'[+-]', '', s)) #去掉所有的'-'或'+'