自然语言处理 | (2)Python字符串处理

目录

1.基本文本处理操作概述

2.清理与替换

3.截取

4.连接与分割

5.比较与排序

6.查找与包含

7.大小写与其他变化


1.基本文本处理操作概述

NLP处理的对象是文本字符串内容,接下来我们熟悉一下Python中的一些基本文本字符串(中/英文)操作:

  • 替换
  • 截取
  • 复制
  • 连接
  • 分割
  • 排序
  • 比较
  • 查找
  • 包含
  • 大小写转换

注意下列字符串处理方法都有返回值,不是对字符串对象原地进行更改。返回处理后的结果(字符串对象),可以直接打印,也可以赋值给别的字符串对象进行其他操作,原字符串不变。

2.清理与替换

str1 = "   hello world, hello, my name is CoreJT!  "
print(str1)
#去除首尾所有空格 
print(str1.strip())
#去除首部所有空格
print(str1.lstrip())
#去除尾部所有空格
print(str1.rstrip())
#也可以去掉一些特殊符号
print(str1.strip().rstrip('!')) #方法可以组合使用 先去掉首尾空格 在去掉尾部!
#注意不能直接str.rstrip('!'),因为此时str的尾部是空格,得先去掉空格再去叹号。

自然语言处理 | (2)Python字符串处理_第1张图片

#字符串替换
print(str1)
print(str1.replace('hello','hi')) #将所有hello都替换为hi
str2 = "  大家好,我是晶天, "
print(str2)
#去除空格和特殊符号
print(str2.strip().lstrip().rstrip(','))
#字符串替换
print(str2.replace('晶天','CoreJT'))
#替换为空串''  相当于删除
print(str2.replace('大家好,',''))

自然语言处理 | (2)Python字符串处理_第2张图片

3.截取

#截取/访问
#字符串的访问类似于Python列表 可以使用切片
str1 = '大家好,我是CoreJT,我在sdu!'
print(str1[0:3]) #访问前三个字符0-2  不包含末尾 左闭右开[0,3)
print(str1[3:3+2]) #[3,5)
#和列表一样 可以使用负索引 代表反方向
print(str1[-1-3:-1]) #从右到左 -1代表最后一个(不包含)
#也可以设置步长 [start:stop:step]
#隔一个取一个
print(str1[::2]) #start默认为0  stop默认到最后(包含) 步长默认为1 
#字符串逆序最快的办法
print(str1[::-1]) #-1代表从尾到头 步长为1 进行取值

自然语言处理 | (2)Python字符串处理_第3张图片

4.连接与分割

str1 = "大家好,我是CoreJT,太好了!"
str2 = '大家好,我是XXX,吃饭了吗?'
#使用+连接
print(str1+str2)
#使用join进行连接
#创建一个字符串列表
strs = ['我是CoreJT','我是XXX','太开心了,太棒了!']
print(';'.join(strs)) #使用;对列表中的各个字符串进行连接
#join的反方法 split  进行切分
str3 = '我是CoreJT;我是XXX;太开心了,太棒了!'
print(str3.split(';')) #使用;对字符串进行切分 得到字符串列表

5.比较与排序

strs = ['alice','Uzi','dancy','Mlxg','uzi']
#sorted()可以对序列(列表,元组等)进行排序,返回排序后的结果 原序列并没有变
#按字母序(ASCII码 A:65 a:97)
print(sorted(strs)) 
#可以通过key关键字 自定义排序方式
#使用显式函数
def sort_func(x):
    return x[1].lower()  #按照第2个字母小写的字母顺序进行排序
print(sorted(strs,key=sort_func))

#使用匿名函数
print(sorted(strs,key=lambda x:x[2].upper())) #按照第3个字母大写的字母顺序进行排序

自然语言处理 | (2)Python字符串处理_第4张图片

6.查找与包含

str1 = '我是CoreJT;我是XXX;太开心了,太棒了!'
#查找可以使用index和find
print(str1.index('CoreJT')) #返回第一次出现的第一个位置的索引
print(str1.index('X'))
#index和find的区别是 find更安全  对于找不到的子串会返回-1
print(str1.find('你怎么回事'))
print(str1.find('太开心了'))
print(str1.index('你怎么回事'))

自然语言处理 | (2)Python字符串处理_第5张图片

7.大小写与其他变化

str1 = 'hello,my name is CoreJT.'
#转换小写
print(str1.lower())
#转换大写
print(str1.upper())
#首字母大写
print(str1.capitalize())
#每个单词首字母大写
print(str1.title())
print(str1)

自然语言处理 | (2)Python字符串处理_第6张图片

更多Python字符串方法,可以使用help函数进行查看,即查即用。不只是字符串,其他相关的函数也可以通过help进行查询:

自然语言处理 | (2)Python字符串处理_第7张图片

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(自然语言处理)