一次性汇总了 30+ 字符串常用处理方法

杰哥的IT之旅

共 3791字,需浏览 8分钟

 ·

2021-02-13 11:41

本文转载自公众号「DataCharm」,详情可以扫描下方二维码,关注该公众号,获取更多好文推荐。

今天这篇推文我们就汇总下Python中常用的字符串处理小技巧,字符串在Python数据处理中是非常常见且极易忽略的常用数据类型,且Python本身也提供大量运算符函数方法来处理字符串。话不多说,接下来我们就汇总下字符串处理小技巧(ps:都是小编经常用到的处理技巧,可能不是很全哦)

字符串常用操作

1、+ 操作

这个操作相对简单,就是对字符串进行组合,如下:

a = "Data"
b = "Charm"
print(a+b) 
# DataCharm

2、* 操作

* 操作一般都是重复字符串的个数,举例如下:

a="DataCharm"
print(a*3)
# DataCharmDataCharmDataCharm

3、in 操作

这个操作在我的数据处理过程中经常使用到,用于判断某个字符是否在指定的字符串中,进而进行下一步的操作,这个和pandas数据筛选结合使用,可以快速选择出对应的数据。

s = "DataCharm"
print(s in "The best place to learn Python is DataCharm")
#True

根据返回的 True 或False 结果就可以灵活进数据判断和数据选择了(结合pandas布尔类型),而 not in 则是 in 的反操作,其他都是一样的。

4、[] 和[:] 通过索引获取字符串中字符

这两个字符串操作是使用频次较多的操作了:

  • [] 可通过具体的索引号选择字符串中的字符;

  • [:] 可以拆分字符串,进而获取字符串中的一部分。

下面我们通过具体例子进讲解,首先,有字符串如下(标注了索引号和反索引号,注意:python正序索引是从0开始,倒序索引从-1开始)

接下来的内容我们将直接通过代码进行展示:

正序取数

s = "DataCharm"
s[0]
#'D'
s[1]
#'a'
# 一旦取值超过索引范围,则会显示出错,如下:
s[9]
#IndexError: string index out of range

倒序取数

s = "DataCharm"
s[-1]
#'m'

字符串的切片处理这一部分为字符串常用部分,希望小伙伴们可以仔细阅读理解

s = "DataCharm"
s[0:4]
#'Data'

s[:4]
#'Data'

还可以:

s[:4] + s[4:]
#'DataCharm'

s[:4] + s[4:] == s
#True

对于倒序:

s = "DataCharm"
s[-5:-2]
#'Cha'
#相当于正序取数如下:
s[4:7]
#'Cha'

s[-5:-2] == s[4:7]
#True

切片中我们还可以指定步长

s = "DataCharm"
s[0:6:2] # 索引位置0~5,每隔1个进行取数
#'DtC'

将第一个和第二个索引可以省略,并且分别默认为第一个和最后一个字符:

s = "DataCharm"
s[::2]# 忽略第一个和第二个索引
# 'DtCam'

s[2::2]# 忽略第二个索引,默认为最后一个字符
# 'tCam'

指定一个负的步长,这种情况下,字符串将倒序取值,且第一个索引应大于第二个索引:

s = "DataCharm"
s[9:0:-2]
# 'maCt'

s[::-2]
# 'maCtD'

当设置为-1时,则将原字符串进行反转,这也是较常用的操作之一哦,如下:

s = "DataCharm"
s[::-1]
# 'mrahCataD'

字符串常用内置方法

python 字符串操作内置了许多处理方法,这里我们只列举出我在实际使用中常用的的内置方法。

s.capitalize():把字符串的第一个字符大写,其他字符串小写

s = "dataCharm"
s.capitalize()
#'Datacharm'

s.lower():转换 string 中所有大写字符为小写

s = "DataCharm"
s.lower()
#'datacharm'

s.swapcase():将字符串中大写的变小写,小写的变大写

s = "DataCharm"
s.swapcase() 
# 'dATAcHARM'

s.title():将所有单词都是以大写开始,其余字母均为小写

s = "data charm"
s.title()
#'Data Charm'

s.upper():将 string 中的小写字母为大写

s = "datacharm"
s.upper()
#'DATACHARM'

s.endswith(obj)和 s.startswith(obj):检查字符串是否是以 obj 开头(开头),是则返回 True,否则返回 False

这两个字符串内置方法为常用方法,特别是数据选择过程中,当然和pandas结合,实现高效取数。

s = "DataCharm"
s.startswith("Data")
#True
s.endswith("Data")
#False

s.strip([chars])、 s.lstrip([chars])和 s.rstrip([chars]):删除 string 字符串开头和结尾、开头、结尾的指定的字符(chars)(默认为空格)

该方法为较常使用在数据清洗过程中,如爬取的字符串数据需要去除多余空格。

s = " DataCharm "
s.strip()
#'DataCharm'
s.lstrip()
#'DataCharm '
s.rstrip()
#' DataCharm'

s.find(str, beg=0, end=len(s)):检测str是否包含在s 中,如果在 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1。

s.count(str, beg=0, end=len(s)):返回 str 在 s 里面出现的次数,如果 在beg 或者 end 指定指定范围内,则返回 str 出现的次数

s.split("str"):以指定字符(str)分割字符串,返回多个字符串组成的列表。

字符串和列表之间的转换

这个小技巧也是我在数据处理过程中经常使用的,所以单独进行讲解。

将列表转换成字符串,我们可以使用 .join() 方法操作

list_test = ['foo''bar''baz''qux']
str_from_list = " ".join(list_test)
str_from_list
# 'foo bar baz qux'

type(str_from_list)
# str

将字符串转换成列表,则直接使用s.split()方法即可

str_test = "foo bar baz qux"
list_from_str = str_test.split(" ")
list_from_str
#['foo', 'bar', 'baz', 'qux']

type(list_from_str)
#list

字符串格式化处理

这里建议大家使用str.format() 方法进行字符串格式化输出。str.format()基本格式为

"xxx{ }xxx".format(参数)

这里我们列出几种常见的形式,具体详细的大家可自行搜索(主要是太多,我列出常用的几个即可)

#方式一:
'{0}, {1}, {2}'.format('a''b''c')
#方式二:
'{}, {}, {}'.format('a''b''c')

指定数字类型

  • b: 输出整数的二进制方式;

  • c: 输出整数对应的Unicode字符;

  • d: 输出整数的十进制方式;

  • o: 输出整数的八进制方式;

  • x: 输出整数的小写十六进制方式;

  • X: 输出整数的大写十六进制方式;

保留两位小数(使用较多)

'π is {:.2f}'.format(3.1415926)
'π is 3.14'

数字千位符格式

'{:,}'.format(123456789)
#'123,456,789'

百分比表示

"{:.0%}".format(3/10)
#'30%'
"{:.3%}".format(3/10)
#'30.000%'

日期格式表示

import datetime
date = datetime.datetime(202021232058)
'{:%Y-%m-%d %H:%M:%S}'.format(date)
#'2020-02-01 23:20:58'

总结

以上就是关于我在实际使用过程中常用的Python字符串操作方法,由于是小编常用到的,可能不是很全,但绝对是常用操作,希望对大家有所帮助,更多Python 字符串操作,小伙伴们可自行搜索哦!

推荐阅读

学习数据分析,这些数据网站你一定要知道!

我用 Python 分析了一波热卖年货,原来大家都在买这些东西?

一个好玩有趣的Python手绘图形库(雷达图、柱状图、折线图…)

Python实现 “王者农药” 自动刷金币,这思路 “绝了”!

利用 Python 分析了某化妆品企业的销售情况,我得出的结论是?

浏览 31
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报