Python字符串常用方法以及其应用场景详解

目录
  • 前言
  • 一、最大化最小化方法
  • 二、统计次数方法
  • 三、去掉左右侧字符方法
  • 四、字符串分隔方法
  • 五、字符串替换方法
  • 六、字符串拼接方法
  • 七、判断是否为数字的方法
  • 八、判断是否为空格的方法
  • 九、判断前缀和后缀的方法
  • 补充:更多Python字符串常用方法
  • 总结

前言

字符串作为一种重要的Python基本数据类型,在数据处理中发挥着不可或缺的作用,如果对它的方法能够灵活使用,能够达到事半功倍的效果。下面我们选取一些常用的方法,简述其应用场景。

一、最大化最小化方法

字符串的最大化方法upper()和最小化方法lower()可以将字符串全部转换为大写和小写。在数据处理分析过程中,如果涉及到字符串的比较和统计,尤其涉及到英文的,一般需要将字符串全部转化小写再进行比较统计,否则可能会不准。

比如根据用户的输入,决定接下来的程序是否执行,如果用户输入n则不执行,为了让程序设计的更加友好,需要考虑用户可能输入N的情况,该问题可以通过lower()或者upper()来解决。

>>> choice = input('是否继续执行程序,输入n或N则结束:')
是否继续执行程序,输入n或N则结束:N
>>> if choice == 'n'or choice == 'N':  # 常规处理方式
	      print('程序结束')
>>> if choice.lower() == 'n':  #  推荐用该方法处理
	      print('程序结束')

比如现在通过分词工具,已经把一段英文分词单词的列表,现在要统计“when”出现的次数,一般需要再统计之前将字符串全部最小化下。

>>> words = ['When', 'you', 'fall', 'stand', 'up.', 'And', 'when', 'you', 'break', 'stand', 'tough', 'And', 'when', 'they', 'say', 'you', 'can't,', 'you', 'say', 'I', 'can', 'I', 'can']
>>> count = 0
>>> sta_word = 'when'
>>> for word in words:
	    if word.lower() == sta_word:
		    count += 1
>>> print('{}出现了{}次'.format('when', count))
when出现了3次

二、统计次数方法

统计次数的count()方法可以快速统计字符串中某个子串出现的次数,但这个方法在列表数据类型中应用较多,在字符串中应用很少,使用不当容易造成不易察觉的错误。

比如统计“帽子和服装如何搭配才好看”这句话中“和服”出现的次数,虽然出现了“和服”,但不是想要统计的结果,对于英文中很多单词有多种时态,更是如此。对于文本中词频的统计,一般需要先进行分词处理,英文可能还需要进行词形还原处理,然后再统计词频。

>>> "帽子和服装如何搭配才好看".count("和服")
1
>>> import jieba
>>> words = jieba.lcut("帽子和服装如何搭配才好看")
>>> words
['帽子','和','服装','如何','搭配','才','好看']
>>> words.count("和服") # 分词后再统计
0

三、去掉左右侧字符方法

在做文本处理任务时,对于网络上爬取或者其他渠道获取的数据信息,经常会存在“噪声”,即会有一些没有实际意义的字符,干扰文本的格式和信息的提取,此时strip()lstrip()rstrip()方法就可以帮助删除掉字符串头部和尾部的指定字符。当字符没有被指定时,默认去除空格或换行符。lstrip()代表删除字符串左侧(即头部)出现的指定字符,rstrip()代表删除字符串右侧(即尾部)出现的指定字符。下面通过几个例子来说明。

>>> temp_str = "  tomorrow is another day "
>>> temp_str.strip()
'tomorrow is another day'
>>> temp_str = "#  tomorrow is another day @"
>>> temp_str.strip('#')
'  tomorrow is another day @'
>>> temp_str.strip('# @')
'tomorrow is another day'
>>> temp_str = "#@  tomorrow is another day @"
>>> temp_str.lstrip('@# ')
'tomorrow is another day @'

四、字符串分隔方法

当字符串具有特定的格式,或者需要处理的数据具有结构化特点,比如excel表格的数据、或者json格式的文件等,当提取其中的某一个或几个字段时,需要先对字符串进行分隔。split()方法以指定的分隔符为基准,将分隔后得到的字符串以数组类型返回,方便进行之后的操作。当没有指定分隔符时,默认以空格分隔。

>>> temp_str = "Whatever is worth doing is worth doing well"
>>> temp_str.split()
['Whatever', 'is', 'worth', 'doing', 'is', 'worth', 'doing', 'well']
>>> temp_str = "tomorrow#is#another#day"
>>> temp_str.split('#')
['tomorrow', 'is', 'another', 'day']
>>> temp_str = ‘"name":"Mike","age":18,"sex":"male","hair":"black"'
>>> temp_str.split(',')
['"name":"Mike"', '"age":18', '"sex":"male"', '"hair":"black"']

五、字符串替换方法

字符串替换也是很常用的方法之一。例如发现有输入错误的时候,正确的要替换掉错误的,或者需要将一些没有意义的字符统一去除或者换成空格的时候,都可以考虑使用replace()方法。第三个参数为可选参数,表示替换的最大次数。

>>> temp_str = "this is really interesting, and that is boring."
>>> temp_str.replace('is','was')
'thwas was really interesting, and that was boring.'
>>> temp_str.replace('is','was')
'this was really interesting, and that was boring.'
>>> temp_str = 'I really really really like you.'
>>> temp_str.replace("really","",2)
'I   really like you.'

上例显示出,字符串中出现的所有is都被进行了替换,包括包含is的单词,这也是编程中需要考虑的问题。如果是英文字符串,可以考虑通过加上空格的方式来避免错误的替换,如第四行所示。

六、字符串拼接方法

字符串的拼接方法与其分隔方法可以看作是互逆操作,join()方法将序列中的元素以指定的字符连接,生成一个新的字符串。这个序列可以是字符串、元组、列表、字典等。

>>> seq = 'hello world'
>>> ":".join(seq)
'h:e:l:l:o: :w:o:r:l:d'
>>> seq = ('Whatever', 'is', 'worth', 'doing', 'is', 'worth', 'doing', 'well')
>>> "*".join(seq)
'Whatever*is*worth*doing*is*worth*doing*well'
>>> seq = ['Whatever', 'is', 'worth', 'doing', 'is', 'worth', 'doing', 'well']
>>> " ".join(seq)
'Whatever is worth doing is worth doing well'
>>> seq = ['"name":"Mike"', '"age":18', '"sex":"male"', '"hair":"black"']
>>> "#".join(seq)
'"name":"Mike"#"age":18#"sex":"male"#"hair":"black"'

七、判断是否为数字的方法

isdigit()方法用于判断一个字符串是否全部都由数字组成,返回值为布尔值。如果字符串中存在小数点或者符号,也不能认为全都是数字,如下例所示:

>>> num = "13579"
>>> num.isdigit()
True
>>> num = '1.0'
>>> num.isdigit()
False
>>> num = '-1'
>>> num.isdigit()
False

八、判断是否为空格的方法

isspace()方法用于判断一个字符串是否全部都由空格组成,返回值为布尔值。要注意的是,空字符串返回False。如下例所示:

>>> t = ''
>>> t.isspace()
False
>>> t = '  '
>>> t.isspace()
True

九、判断前缀和后缀的方法

startswith()endswith()分别用于判断字符串的前缀和后缀,即它的开始部分和结尾部分,返回值为布尔值,后面有两个可选参数,相当于对字符串做一个切片后再判断前缀/后缀。如下例所示:

>>> temp_str = "Whatever is worth doing is worth doing well"
>>> temp_str.startswith("W")
True
>>> temp_str.startswith("What")
True
>>> temp_str.startswith('Whatever',2)
False
>>> temp_str.endswith("well",2)
True
>>> temp_str.endswith("we",2,-2)
True

补充:更多Python字符串常用方法

a = "hello world"
# 字符串不能通过索引进行修改  name[0] = 'q'

# 切片,查找字符串当中的一段值,[起始值:终止值:步长]不写步长默认是1
print(a[0:5:])
print(a[::-1])  # 步长负数倒过来走,不写起始值和终止值就走完全部
print(a[::1])
print(len(a))  # len方法获取字符串的长度

# in 和 not in :判断一个字符串是否在一个大的字符串中
# 返回值为布尔类型
print('hello' in 'hello world')
print('nihao' not in 'hello world')

# 字符串的增
print('nihao', 'Python')
print('nihao' + 'Python')

# format    前面的大括号写上数字代表着取后面括号里的索引位置
print('==============format================')
print('my name is {}'.format(100))
print('my name is {1},my age is {0}'.format('dayv', 18))
print('my name is {0},my age is {1}'.format('dayv', 18))

# join  把列表里的元素组成字符串
str1 = '真正的勇士'
str2 = '敢于直面惨淡的人生'
str3 = '敢于正视淋漓的鲜血'
print(''.join([str1, str2, str3]))
# 前面的逗号表示用什么来隔开,列表中只能是字符串才能使用join方法
print(','.join([str1, str2, str3]))

# 删   del
name1 = 'nihao'
del name1  # 这就把这个变量删除了,在输出这个变量就会出错

# 改
# 字符串变大小写 upper , lower ,
name1 = 'abc'
print('大写:' + name1.upper())
print(name1.lower())

# capitalize  将第一个字母转换成大写
print(name1.capitalize())

# 将每个单词的首字母大写  title
name2 = 'hello world'
print('每个单词首字母大写:' + name2.title())
print('原name2的值' + name2)

# 将字符串切分成列表  默认空格为字符切分  split
name1 = 'a b    cd e'
print(name1.split())
# 括号里写什么就用什么切分                !!!!!!!!!!!!!!!!!!!!
name1 = 'a1b1cd1e'
print("自己配置用什么东西切分", name1.split('1'))  # 返回的是列表
# rsplit('指定用什么切片', 切几次),反过来切
print('切片倒过来切使用rsplit', name1.rsplit('1', 1))  # 倒过来切一个元素
# 替换replace(被替换的字符,替换的字符,个数)     !!!!!!!!!!!!!!
print(name1.replace('1', '0'))
print(name1.replace('1', '0', 1))  # 个数是从左往右的顺序替换
aaaaa = ' sdf   kkf  k k   '
print('使用替换去除字符串中的全部空格', aaaaa.replace(" ", ''))

# strip  除去字符串两边的空格,中间的不会管
name1 = '        ni h ao     '
print(name1.strip())

# 查
# find  index
# 查找字符串在大字符串的那个索引位置(起始索引)
name1 = 'PythonPythonPython'
print("使用find查找的索引位置", name1.find('on'))
# 找不到会返回-1
print("使用index查找的索引位置:", name1.index('on'))
# index方法找不到会报错

# count  统计一个字符串在大字符串里面出现的次数
print(name1.count('qi'))

# 判断一个字符串里的数据是不是都是数字  isdigit   返回布尔值
num = '156465'
print(num.isdigit())
# 判断一个字符串里的数据是不是都是字母   isalpha
num = 'ksdjflks'
print(num.isalpha())

# 比较后面一个元素是否是前面一个元素的开头,startswith
# 比较后面一个元素是否是前面一个元素的结尾  endswith
mm = 'Python nihao'
print(mm.startswith('Pyth'))
print(mm.endswith('Pytho'))

# 判断字符串是否全是大写isupper   是否全是小写islower

# 转义字符 \n换行   \t
print('hello \nworld')
print('z\tiyu')
print('Pyth \t on')
print('Python123')
# 反转义
print(r'zhai \t dada')  # 加r
print('zhai \\t dada')  # 或者写两个斜杠

# 控制字符串的输入字数
print('123456'[:5])  # 只会输入前五个数

总结

到此这篇关于Python字符串常用方法以及其应用场景的文章就介绍到这了,更多相关Python字符串常用方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python基础之字符串常见操作经典实例详解

    本文实例讲述了Python基础之字符串常见操作.分享给大家供大家参考,具体如下: 字符串基本操作 切片 # str[beg:end] # (下标从 0 开始)从下标为beg开始算起,切取到下标为 end-1 的元素,切取的区间为 [beg, end) str = ' python str ' print (str[3:6]) # tho # str[beg:end:step] # 取 [beg, end) 之间的元素,每隔 step 个取一个 print (str[2:7:2]) # yhn 原

  • python字符串分割及字符串的一些常规方法

    字符串分割,将一个字符串分裂成多个字符串组成的列表,可以理解为字符串转列表,经常会用到 语法:str.split(sep, [,max]),sep可以指定切割的符号,max可以指定切割的次数(次数不常用) 不带参数时以空格进行分割 带参数时,以该参数进行分割 未查询到分隔符时,列表只包含原始字符串 source ="1,2,3,4,5,,6" print source.split(',') #按照索引取值[] source ="1,2,3,4,5,,6" print

  • Python中常用的8种字符串操作方法

    拼接字符串 使用"+"可以对多个字符串进行拼接 语法格式: str1 + str2 >>> str1 = "aaa" >>> str2 = "bbb" >>> print(str1 + str2) aaabbb 需要注意的是字符串不允许直接与其他类型进行拼接,例如 >>> num = 100 >>> str1 = "hello" >

  • Python中字符串的常见操作技巧总结

    本文实例总结了Python中字符串的常见操作技巧.分享给大家供大家参考,具体如下: 反转一个字符串 >>> S = 'abcdefghijklmnop' >>> S[::-1] 'ponmlkjihgfedcba' 这种用法叫做three-limit slices 除此之外,还可以使用slice对象,例如 >>> 'spam'[slice(None, None, -1)] >>> unicode码与字符(single-characte

  • python 字符串常用函数详解

    字符串常用函数: 声明变量 str="Hello World" find() 检测字符串是否包含,返回该字符串位置,如果不包含返回-1 str.find("Hello") # 返回值:0 str.find("W") # 返回值:6, 这里需要注意下:空格也是一个字符.W前面有个空格,所以W位置是6 str.find("R") # 返回值:-1,并不包含在Hello World中,如果不包含返回-1 index() 检测字符串是

  • python字符串的常用操作方法小结

    本文实例为大家分享了python字符串的操作方法,供大家参考,具体内容如下 1.去除空格 str.strip():删除字符串两边的指定字符,括号的写入指定字符,默认为空格 >>> a=' hello ' >>> b=a.strip() >>> print(b) hello str.lstrip():删除字符串左边的指定字符,括号的写入指定字符,默认为空格 >>> a=' hello ' >>> b=a.lstrip(

  • Python中常用操作字符串的函数与方法总结

    例如这样一个字符串 Python,它就是几个字符:P,y,t,h,o,n,排列起来.这种排列是非常严格的,不仅仅是字符本身,而且还有顺序,换言之,如果某个字符换了,就编程一个新字符串了:如果这些字符顺序发生变化了,也成为了一个新字符串. 在 Python 中,把像字符串这样的对象类型(后面还会冒出来类似的其它有这种特点的对象类型,比如列表),统称为序列.顾名思义,序列就是"有序排列". 比如水泊梁山的 108 个好汉(里面分明也有女的,难道女汉子是从这里来的吗?),就是一个"

  • Python字符串的常见操作实例小结

    本文实例讲述了Python字符串的常见操作.分享给大家供大家参考,具体如下: 如果我们想要查看以下功能:help(mystr .find) 1.find 例: mystr="hello world itcast" print(mystr.find("world")) 结果为 6 find括号中填写要查找的内容,如果找不到返回-1,找到返回从左往右找到的第一个位置 2.index 功能和find一样,只是找不到时,这个返回错误 3.rfind 从右往左找的第一个位置

  • python数据类型_字符串常用操作(详解)

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 = "hello bei jing " name2 = '''hello shang hai haha''' python中的字符串一旦声明,是不能进行更改的,如下: #字符串为不可变变量,即不能通过对某一位置重新赋值改变内容 name = 'hello' name[0] = 'k' #通

  • Python字符串常用方法以及其应用场景详解

    目录 前言 一.最大化最小化方法 二.统计次数方法 三.去掉左右侧字符方法 四.字符串分隔方法 五.字符串替换方法 六.字符串拼接方法 七.判断是否为数字的方法 八.判断是否为空格的方法 九.判断前缀和后缀的方法 补充:更多Python字符串常用方法 总结 前言 字符串作为一种重要的Python基本数据类型,在数据处理中发挥着不可或缺的作用,如果对它的方法能够灵活使用,能够达到事半功倍的效果.下面我们选取一些常用的方法,简述其应用场景. 一.最大化最小化方法 字符串的最大化方法upper()和最

  • python字符串驻留机制的使用范围知识点详解

    1.字符串的长度为0和1时. 2.符合标识符的字符串. 3.字符串只在编译时进行驻留,而非运行时. 4.[-5,256]之间的整数数字. 实例 >>> str1='jiumo' >>> str2='jiumo' >>> str1 is str2 True >>> id(str1) 1979078421896 >>> id(str2) 1979078421896 知识点扩充: 驻留时机 所有长度为 0 和长度为 1 的

  • Python字符串的创建和驻留机制详解

    目录 字符串 字符串驻留机制 字符串驻留机制优缺点 字符串 字符串在Python中是基本数据类型,是一个不可变的字符序列. 字符串驻留机制 仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,Python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量. 驻留机制的几种情况(交互模式windows+r,cmd) 1.字符串的长度为0或1时 2.符合标识符的字符串 3.字符串只在编译时进行驻留,而非运行时 b在运行

  • python字符串反转的四种方法详解

    这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.用reduce函数方法 book = 'Python程序设计' result = reduce(lambda x,y:y+x,book) print(result) 2.字符串切割 book = 'Python程序设计' print(book[::-1]) 3.用reversed方法,把字符串变成列表反转后拼接 result = reverse

  • python字符串拼接.join()和拆分.split()详解

    目录 1. 字符串拆分函数.split() 2. 字符串拼接函数.join() 扩展:理解" ".join(s.split(" ")[::-1])[::-1] 总结 1. 字符串拆分函数.split() 按照空格拆分字符串: s = "fd as sf" res = s.split(" ") print(res) 返回值为:['fd','as','sf'] 备注: s.split(" ")常见于拆分一句话中

  • 将Python字符串生成PDF的实例代码详解

    笔者在今天的工作中,遇到了一个需求,那就是如何将Python字符串生成PDF.比如,需要把Python字符串'这是测试文件'生成为PDF, 该PDF中含有文字'这是测试文件'.   经过一番检索,笔者决定采用wkhtmltopdf这个软件,它可以将HTML转化为PDF.wkhtmltopdf的访问网址为:https://wkhtmltopdf.org/downloads.html ,读者可根据自己的系统下载对应的文件并安装.安装好wkhtmltopdf,我们再安装这个软件的Python第三方模块

  • python字符串拼接+和join的区别详解

    python在进行字符串的拼接时,一般有两种方法,一种是使用+直接相加,另一种是使用join a = "tests" b = "teststs" # 使用 + c = a + b # 使用join c = "".join(a,b) 这两种,其实在性能上具有比较大的差别,当然如果拼接的字符串的个数不多,就感受不到这种差别. 先谈谈这两种拼接方式各自的原理吧. 1. 使用 + 首先需要知道的是,在python中字符串属于不可变对象. 当用操作符+连接

  • Python多进程与多线程的使用场景详解

    前言 Python多进程适用的场景:计算密集型(CPU密集型)任务 Python多线程适用的场景:IO密集型任务 计算密集型任务一般指需要做大量的逻辑运算,比如上亿次的加减乘除,使用多核CPU可以并发提高计算性能. IO密集型任务一般指输入输出型,比如文件的读取,或者网络的请求,这类场景一般会遇到IO阻塞,使用多核CPU来执行并不会有太高的性能提升. 下面使用一台64核的虚拟机来执行任务,通过示例代码来区别它们, 示例1:执行计算密集型任务,进行1亿次运算 使用多进程 from multipro

  • Python字符串函数strip()原理及用法详解

    strip:用于移除字符串头尾指定的字符(默认为空格)或字符序列.注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符. 语法:str.strip([chars]) str = "*****this is **string** example....wow!!!*****" print (str.strip( '*' )) # 指定字符串 * 输出结果: this is **string** example....wow!!! 从结果上看,可以注意到中间部分的字符并未删除,只

  • Python字符串split及rsplit方法原理详解

    1.描述 split()方法通过指定分隔符对字符串进行切片,如果参数num有指定值,则分隔num+1个子字符串,默认分隔符为所有空字符,包括空格.换行(\n).制表符(\t)等 rstrip()方法通过 2.语法 str.split([sep=None][,count=S.count(sep)]) str.rsplit([sep=None][,count=S.count(sep)]) 3.参数 sep -- 可选参数,指定的分隔符,默认为所有的空字符,包括空格.换行(\n).制表符(\t)等 c

随机推荐