首页 > pandas 阅读数:11

Python内置的字符串处理方法

Python 语言由于在处理字符串和文本方面非常方便,因而深受欢迎。大多数字符串操作使用 Python 内置函数就能轻松实现。在 pandas 字符串操作中,常用的字符串处理方法如下。

字符串拆分

split() 函数的作用是通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串,其语法格式如下:

str.split(str="", num=string.count(str))

该函数参数说明如下:
  • str:表示字符串的分隔符,默认为所有的空字符,包括空格、换行“\n”、制表符“\t”等;
  • num:表示分割次数。

函数返回值为分割后的字符串列表。

示例代码 example1.py 如下。
# -*- coding: utf-8 -*-
str = "#this is string example##"
print(str.split(' '))
print(str.split(' ',str.count(' '))
print(str.split(' ',2))

移除字符串头尾指定的字符

strip() 函数可用于移除字符串头尾指定的字符(默认为空格),其语法格式如下:

str.strip(chars)

该函数中参数 chars 表示移除字符串头尾指定的字符。

函数返回值为移除字符串头尾指定的字符生成的新字符串。

示例代码 example2.py 如下。
# -*- coding: utf-8 -*-
str = "#this is string example##"
print(str.strip('#')

字符串连接

join() 函数可以将字符串、元组、列表中的元素以指定的字符(分隔符)连接成一个新的字符串,其语法格式如下:

'sep'.join(seq)

该函数参数说明如下:
  • sep:表示字符串的分隔符,可以为空;
  • seq:表示要连接的元素序列、字符串、元组、字典。

函数返回值为一个以分隔符 sep 连接各个元素后生成的字符串。

除了 join() 函数外,还可以用“+”号将多个字符串连接起来。

示例代码 example3.py 如下。
# -*- coding: utf-8 -*-
arr = ['a','b','c']
str = arr[0]+':'+arr[1]+':'+arr[2
print(str)
str1 = ':'
str2=arr
print(str1.join(str2))

判断是不是子字符串

判断是不是子字符串可以使用 in 关键字,或者使用 find() 函数和 index() 函数判断一个子字符串的位置。

find() 函数用于查找子字符串,若找到返回从 0 开始的下标值,若找不到返回 -1。其语法格式如下:

str.find(chars)

该函数中参数 chars 表示要查找的子字符串。

函数返回值为返回子字符串第一次出现的位置的下标值。

index() 函数用于在字符串里查找子串第一次出现的位置,类似字符串的 find 方法,不过比 find 方法更好的是,如果查找不到子串,会抛出异常,而不是返回 -1,其语法格式如下:

str.index(chars)

该函数中参数 chars 表示要查找的子字符串。

函数返回值为返回子字符串第一次出现的位置的下标值。

示例代码 example4.py 如下。
# -*- coding: utf-8 -*-
str = "#this is string example##"
print(str.find('s'))
print(str.index('s'))
if 's' in str:
    print(str.find('s'))

print(str.find('o'))
print(str.index('o'))

判断子字符串出现的次数

count() 函数可用于统计字符串里某个字符出现的次数,函数的可选参数为字符串搜索的开始与结束位置。其语法格式如下:

str.count(sub,start,end)

该函数参数说明如下。
  • sub:表示搜索的子字符串。
  • start:表示字符串开始搜索的位置,默认为第一个字符,第一个字符索引值为 0。
  • end:表示字符串中结束搜索的位置,默认为字符串的最后一个位置。

函数返回值为返回子字符串在字符串中出现的次数。

示例代码 example5.py 如下。
# -*- coding: utf-8 -*-
str = "#this is string example##"
print(str.count('s'))
print(str.count('s',0,5))
print(str.count('s',5,len(str)))

替换子字符串

replace() 函数可将字符串中的 old(旧字符串)替换成 new(新字符串),如果指定第 3 个参数 max,则替换不超过 max 次。其语法格式如下:

str.replace(old, new[, max])
str.count(sub,start= 0,end=len(string))

该函数参数说明如下:
  • old:表示将被替换的子字符串;
  • new:表示新字符串,用于替换 old 子字符串;
  • max:可选项,表示替换不超过 max 次。

函数返回值为返回字符串中的 old(旧字符串)替换成 new(新字符串)后生成的新字符串,如果指定第 3 个参数 max,则替换不超过 max 次。

示例代码 example6.py 如下。
# -*- coding: utf-8 -*-
str = "新浪网www.sina.com"
print (str.replace('com','cn.com')
str = "#this is string example##"
str1 = str.replace('is', 'was')
str2 = str1.replace('#','!',2)
print(str1,'\n',str2)