关于Python中字符串的各种操作

目录
  • 1、字符串拼接
  • 2、字符串截取(字符串切片)
  • 3、分割字符串
  • 4、合并字符串
  • 5、统计字符串出现的次数
  • 6、检测字符串是否包含某子串
  • 7、字符串对齐方法
  • 8、检索字符串是否以指定字符串开头(startswith())
  • 9、检索字符串是否以指定字符串结尾(endswith())
  • 10、字符串大小写转换(3种)函数及用法
  • 11、去除字符串中空格(删除特殊字符)的3种方法
  • 12、encode()和decode()方法:字符串编码转换
  • 13、序列化和反序列化

1、字符串拼接

通过+运算符
现有字符串码农飞哥好,,要求将字符串码农飞哥牛逼拼接到其后面,生成新的字符串码农飞哥好,码农飞哥牛逼

举个例子:

str6 = '码农飞哥好,'
# 使用+ 运算符号
print('+运算符拼接的结果=',(str6 + '码农飞哥牛逼'))

运行结果是:

+运算符拼接的结果= 码农飞哥好,码农飞哥牛逼

2、字符串截取(字符串切片)

切片操作是访问字符串的另一种方式,它可以访问一定范围内的元素,通过切片操作,可以生成一个新的字符串。切片操作的语法格式是:

sname[start : end : step]

各个参数的含义分别是:

  • sname: 表示字符串的名称
  • start:表示切片的开始索引位置(包括该位置),此参数也可以不指定,不指定的情况下会默认为0,也就是从序列的开头开始切片。
  • end:表示切片的结束索引位置(不包括该位置),如果不指定,则默认为序列的长度。
  • step: 表示步长,即在切片过程中,隔几个存储位置(包括当前位置)取一次元素,也就是说,如果step的值大于1,比如step为3时,则在切片取元素时,会隔2个位置去取下一个元素

还是举个栗子说明下吧:

str1='好好学习,天天向上'
# 取出索引下标为7的值
print(str1[7])
# 从下标0开始取值,一直取到下标为7(不包括)的索引值
print(str1[0:7])
# 从下标1开始取值,一直取到下标为4(不包括)的索引值,因为step等于2,所以会隔1个元素取值
print(str1[1:4:2])
# 取出最后一个元素
print(str1[-1])
# 从下标-9开始取值,一直取到下标为-2(不包括)的索引值
print(str1[-9:-2])

运行的结果是:

向
好好学习,天天
好习
上
好好学习,天天

3、分割字符串

Python提供了split()方法用于分割字符串,split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串,这些子串会被保存到列表中(不包含分隔符),作为方法的返回值反馈回来。该方法的基本语法格式如下:

str.split(sep,maxsplit)

此方法中各部分参数的含义分别是:

  • str: 表示要进行分割的字符串
  • sep: 用于指定分隔符,可以包含多个字符,此参数默认为None,表示所有空字符,包括空格,换行符"\n"、制表符"\t"等
  • maxsplit: 可选参数,用于指定分割的次数,最后列表中子串的个数最多为maxsplit+1,如果不指定或者指定为-1,则表示分割次数没有限制。

在 split 方法中,如果不指定 sep 参数,那么也不能指定 maxsplit 参数。

举例说明下:

str = 'https://feige.blog.csdn.net/'
print('不指定分割次数', str.split('.'))
print('指定分割次数为2次',str.split('.',2))

运行结果是:

不指定分割次数 ['https://feige', 'blog', 'csdn', 'net/']
指定分割次数为2次 ['https://feige', 'blog', 'csdn.net/']

4、合并字符串

合并字符串与split的作用刚刚相反,Python提供了join() 方法来将列表(或元组)中包含的多个字符串连接成一个字符串。其语法结构是:

newstr = str.join(iterable)

此方法各部分的参数含义是:

  • newstr: 表示合并后生成的新字符串
  • str: 用于指定合并时的分隔符
  • iterable: 做合并操作的源字符串数据,允许以列表、元组等形式提供。

依然是举例说明:

list = ['码农飞哥', '好好学习', '非常棒']
print('通过.来拼接', '.'.join(list))
print('通过-来拼接', '-'.join(list))

运行结果是:

通过.来拼接 码农飞哥.好好学习.非常棒
通过-来拼接 码农飞哥-好好学习-非常棒

5、统计字符串出现的次数

count()方法用于检索指定字符串在另一字符串中出现的次数,如果检索的字符串不存在,则返回0,否则返回出现的次数。其语法结构是:

str.count(sub[,start[,end]])

此方法各部分参数的含义是:

  • str: 表示原字符串
  • sub: 表示要检索的字符串.
  • start: 指定检索的起始位置,也就是从什么位置开始检测,如果不指定,默认从头开始检索。
  • end: 指定检索的终止位置,如果不指定,则表示一直检索到结尾

举个例子说明:

str = 'https://feige.blog.csdn.net/'
print('统计.出现的次数', str.count('.'))
print('从1位置到倒数第五个位置统计.出现的次数', str.count('.', 1, -5))

运行结果是:

统计.出现的次数 3
从1位置到倒数第6个位置统计.出现的次数 2

6、检测字符串是否包含某子串

Python提供find方法,用于检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引,反之,则返回-1。其语法结构是:

str.find(sub[,start[,end]])

此方法各参数的含义是:

  • str: 表示原字符串
  • sub: 表示要检索的目标字符串
  • start: 表示开始检索的起始位置,如果不指定,则默认从头开始检索
  • end: 表示结束检索的结束位置,如果不指定,则默认一直检索到结尾。

Python还提供了rfind()方法,与find()方法最大的不同在于,rfind()是从字符串右边开始检索。

依然是举例说明:

str = '码农飞哥'
print('检索是否包含字符串"飞哥"', str.find('飞哥'))
print("检索是否包含字符串'你好'", str.find('你好'))

运行结果是:

检索是否包含字符串"飞哥" 2
检索是否包含字符串'你好' -1

Python还提供了indext()方法检测字符串中是否包含某子串,方法的参数与find方法相同,唯一不同之处在于当指定的字符串不存在时,index()方法会抛出异常。在此就不在赘述了。

7、字符串对齐方法

Python str提供了3种可用来进行文本对齐的方法,分别是ljust(),rjust()和center()方法

(1)ljust()用于向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的,其语法结构是

S.ljust(width[, fillchar])

此方法中各个参数的含义是:

  • S: 表示要进行填充的字符串
  • width: 表示包括S本身长度在内,字符串要占的总长度
  • fillchar: 作为可选参数,用来指定填充字符串时所用的字符,默认情况使用空格。

(2)rjust() 方法是向字符串的左侧填充指定字符,从而达到右对齐文本的目的。
(3)center()方法用于让文本居中,而不是左对齐或右对齐

举个例子说明下:

str1 = 'https://feige.blog.csdn.net/'
str2 = 'https://www.baidu.com/'
print("通过-实现左对齐", str1.ljust(30, '-'))
print("通过-实现左对齐", str2.ljust(30, '-'))
print("通过-实现右对齐", str1.rjust(30, '-'))
print("通过-实现右对齐", str2.rjust(30, '-'))
print("通过-实现居中对齐", str1.center(30, '-'))
print("通过-实现居中对齐", str2.center(30, '-'))

运行结果是:

通过-实现左对齐 https://feige.blog.csdn.net/--
通过-实现左对齐 https://www.baidu.com/--------
通过-实现右对齐 --https://feige.blog.csdn.net/
通过-实现右对齐 --------https://www.baidu.com/
通过-实现居中对齐 -https://feige.blog.csdn.net/-
通过-实现居中对齐 ----https://www.baidu.com/----

8、检索字符串是否以指定字符串开头(startswith())

startswith()方法用于检索字符串是否以指定字符串开头,如果是返回True;反之返回False。其语法结构是:

str.startswith(sub[,start[,end]])

此方法各个参数的含义是:

  • str: 表示原字符串
  • sub: 要检索的子串‘
  • start: 指定检索开始的起始位置索引,如果不指定,则默认从头开始检索
  • end: 指定检索的结束位置索引,如果不指定,则默认一直检索到结束。

举个栗子说明下:

str1 = 'https://feige.blog.csdn.net/'
print('是否是以https开头', str1.startswith('https'))
print('是否是以feige开头', str1.startswith('feige', 0, 20))

运行结果是:

是否是以https开头 True
是否是以feige开头 False

9、检索字符串是否以指定字符串结尾(endswith())

endswith()方法用于检索字符串是否以指定字符串结尾,如果是则返回True,反之则返回False。其语法结构是:

str.endswith(sub[,start[,end]])

此方法各个参数的含义与startswith方法相同,再此就不在赘述了。

10、字符串大小写转换(3种)函数及用法

Python中提供了3种方法用于字符串大小写转换

  • title()方法用于将字符串中每个单词的首字母转成大写,其他字母全部转为小写。转换完成后,此方法会返回转换得到的字符串。如果字符串中没有需要被转换的字符,此方法会将字符串原封不动地返回。其语法结构是str.title()
  • lower()用于将字符串中的所有大写字母转换成小写字母,转换完成后,该方法会返回新得到的子串。如果字符串中原本就都是小写字母,则该方法会返回原字符串。 其语法结构是str.lower()
  • upper()用于将字符串中的所有小写字母转换成大写字母,如果转换成功,则返回新字符串;反之,则返回原字符串。其语法结构是str.upper()。

举例说明下吧:

str = 'feiGe勇敢飞'
print('首字母大写', str.title())
print('全部小写', str.lower())
print('全部大写', str.upper())

运行结果是:

首字母大写 Feige勇敢飞
全部小写 feige勇敢飞
全部大写 FEIGE勇敢飞

11、去除字符串中空格(删除特殊字符)的3种方法

Python中提供了三种方法去除字符串中空格(删除特殊字符)的3种方法,这里的特殊字符,指的是指表符(\t)、回车符(\r),换行符(\n)等。

  • strip(): 删除字符串前后(左右两侧)的空格或特殊字符
  • lstrip():删除字符串前面(左边)的空格或特殊字符
  • rstrip():删除字符串后面(右边)的空格或特殊字符

Python的str是不可变的,因此这三个方法只是返回字符串前面或者后面空白被删除之后的副本,并不会改变字符串本身

举个例子说明下:

str = '\n码农飞哥勇敢飞 '
print('去除前后空格(特殊字符串)', str.strip())
print('去除左边空格(特殊字符串)', str.lstrip())
print('去除右边空格(特殊字符串)', str.rstrip())

运行结果是:

去除前后空格(特殊字符串) 码农飞哥勇敢飞
去除左边空格(特殊字符串) 码农飞哥勇敢飞
去除右边空格(特殊字符串)
码农飞哥勇敢飞

12、encode()和decode()方法:字符串编码转换

最早的字符串编码是ASCll编码,它仅仅对10个数字,26个大小写英文字母以及一些特殊字符进行了编码,ASCII码最多只能表示256个字符,每个字符只需要占用1个字节。为了兼容各国的文字,相继出现了GBK,GB2312,UTF-8编码等,UTF-8是国际通用的编码格式,它包含了全世界所有国家需要用到的字符,其规定英文字符占用1个字节,中文字符占用3个字节。

  • encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个过程也称为“编码”。其语法结构是:str.encode([encoding="utf-8"][,errors="strict"])
  • 将bytes类型的二进制数据转换成str类型。这个过程也称为"解码",

其语法结构是:bytes.decode([encoding="utf-8"][,errors="strict"])

举个例子说明下:

str = '码农飞哥加油'
bytes = str.encode()
print('编码', bytes)
print('解码', bytes.decode())

运行结果是:

编码 b'\xe7\xa0\x81\xe5\x86\x9c\xe9\xa3\x9e\xe5\x93\xa5\xe5\x8a\xa0\xe6\xb2\xb9'
解码 码农飞哥加油

默认的编码格式是UTF-8,编码和解码的格式要相同,不然会解码失败。

13、序列化和反序列化

在实际工作中我们经常要将一个数据对象序列化成字符串,也会将一个字符串反序列化成一个数据对象。Python自带的序列化模块是json模块。

  • json.dumps() 方法是将Python对象转成字符串
  • json.loads()方法是将已编码的 JSON 字符串解码为 Python 对象

举个例子说明下:

import json

dict = {'学号': 1001, 'name': "张三", 'score': [{'语文': 90, '数学': 100}]}
str = json.dumps(dict,ensure_ascii=False)
print('序列化成字符串', str, type(str))
dict2 = json.loads(str)
print('反序列化成对象', dict2, type(dict2))

运行结果是:

序列化成字符串 {"name": "张三", "score": [{"数学": 100, "语文": 90}], "学号": 1001} <class 'str'>
反序列化成对象 {'name': '张三', 'score': [{'数学': 100, '语文': 90}], '学号': 1001} <class 'dict'>

到此这篇关于关于Python中字符串的各种操作的文章就介绍到这了,更多相关Python中字符串的各种操作内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python数字/字符串补零操作实例代码

    有时候在使用 Python 的时候,想要对一个数字或者字符串进行补零操作,即把「1」变为一个八位数的「00000001」,这个时候可以使用一下方法来进行补零. 字符串补零: 可以使用 zfill() 函数来给字符串补零: >>> str = "123" >>> print(str.zfill(8)) 00000123 还能把整数转化成字符来使用 zfill() 补零: >>> num = 123 >>> print

  • 怎么处理Python分割字符串时有多个分隔符

    在使用 Python 处理字符串的时候,有时候会需要分割字符. 分隔符比如下划线 "_",比如 "."之类的. 一个分隔符 比如对于文件名 20191022_log.zip,我们想要获取前面的日期. 如果日期格式固定,对于这样的字符串我们当然可以使用索引进行切割. 当然也可以使用字符串的内建函数 split().  结果返回的是一个列表. 如果分隔符不在字符串之列,那么返回的也是一个列表,不过元素只有一个,那就是这个字符串自身:  多个分隔符 还是上面那个例子,如果

  • python如何正确的操作字符串

    目录 0x01 字符串(string) 引号转义 拼接字符串 长字符串 索引( indexing) 运算符in 创建列表 切片赋值 0x02 字符串格式化 模板字符串 字符串方法format 0x03 如何设置格式 字段名 转换标志 格式说明 0x04 字符串方法 常量 填充方法 split 0x01 字符串(string) 字符串是 Python 中最常用的数据类型,同时支持单引号和双引号.使用双引号时打印字符串时用单引号. >>> "Hello world!" '

  • python字符串的多行输出的实例详解

    1.字符串的每行末尾使用 \ 续行 以多行的形式书写字符串,每行的末尾使用 \ 续行.需要注意输出内容为一行. >>> string = '第一行\ - 第二行\ - 第三行' >>> print(string) '第一行第二行第三行' 2.使用三个单引号或三个双引号来表示字符串 在 Python 中字符串也可以使用三个单引号或三个双引号来表示字符串,这样字符串中的内容就可以多行书写,并且被多行输出. 使用三引号的方式,字符串可被多行书写,且被多行输出,其中不需要显式地

  • python入门字符串拼接\截取\转数字理解学习

    目录 1.Python字符串的拼接 2.Python字符串的截取 3.python字符串怎么转数字 4."*"号的运用 5.Python字符串格式化 1.Python字符串的拼接 拼接方式很简单-我们可以用"+"号作为字符串的拼接符,将两个字符串拼接到一起.需要注意的是,字符串的拼接要求必须是两个字符串,如果其中一个类型为非字符串类型,就会报错.下面我们来看下字符串的具体应用! m="hello"n="world"d=&quo

  • python入门课程第五讲之序列和字符串

    目录 前言 序列 序列是什么? 有哪些序列类型呢? 1. 按照能存储的元素划分 2. 按照是否可变划分 序列都有哪些方法以及特性呢? 序列的索引 序列切片 序列相加 序列相乘 检查元素是否包含在序列中 序列相关的内置函数 字符串 字符串的定义 原始字符串的处理 字符串的分割方法 字符串拼接的方法 总结 牛刀小试一下吧 参考答案 本文主要介绍Python数据类型中序列和字符串,文末有彩蛋哦 干货满满,建议收藏,用到时常看常新. 小伙伴们如有问题及需要,请留言告诉我哦~ ~ ~. 前言 上一篇文章我

  • 10个有用的Python字符串函数小结

    目录 前言 一.capitalize() 函数 二.lower( ) 函数 三.title( ) 函数 四.casefold() 函数 五.upper( ) 函数 六.count( ) 函数 七.find( ) 函数 八.replace() 函数 九.swapcase( ) 函数 十.join () 函数 前言 Python 字符串是一个内置的类型序列.字符串可用于处理 Python 中的文本数据.Python 字符串是 Unicode 点的不可变序列.在 Python 中创建字符串是最简单易用

  • Python基本数据类型之字符串str

    字符串的表示方式 单引号 ' ' 双引号 " " 多引号 """ """"  . ''' ''' print("hello world") print('hello world') print("""hello world""") # 输出结果 hello world hello world hello world 为什么需要单引号,又需

  • Python如何使用print()函数输出格式化字符串

    目录 前言 格式化输出字符串类型的变量 格式化输出整数型变量 格式化输出浮点型变量 格式化输出多个变量 总结 前言 print()函数用来将信息输出到控制台 如果希望输出文字信息的同时,一起输出数据,可以使用格式化操作符%,格式化操作符负责处理字符串中的格式,需要注意的是,链接不同的字符时,根据不同类型的数据需要使用不同的格式化字符 常用的格式化字符有四种 %s -- 字符串类型 %d -- 整数类型(%05d,指定整数的显示位,不足的位数用0补齐) %f -- 浮点型(%.2f,指定小数点后显

  • Python的文本常量与字符串模板string库

    一.前言 在程序中,有很多高效率的字符串处理方式,如果开发者能够完全掌握这些高效的字符串处理,往往在开发者也能事半功倍.比如针对于字符串的处理,也是自然语言处理的基础知识. 而python3中,处理字符串的库为:string.本篇将详细介绍各种字符串的高效处理方式. 二.首字母大写 对于英文单词组成的字符串来说,很多时候,我们需要对英文的首字母进行大写的变更.如果没有了解其高效率的函数,一般我们都通过循环,判断空格,取空格后一位的字母,判断其在ASCII中的编码后,取其大写替换掉该位置的字符串.

随机推荐