1. python字符串概述
在 Python 中,字符串被定义为连续的字符序列。字符串是Python中最常用的数据类型之一,可以使用单引号或双引号来定义。以下是字符串的一些基本操作:
字符串连接:使用 + 号
字符串复制:使用 * 号
字符串判断:使用 in 和 not in
2. 截取字符串方法
在 Python 中,截取字符串有多种方法。下面介绍比较常用的三种截取方法。
2.1 使用索引
Python字符串可以类比为一个字符数组,每个字符都有一个对应的索引值,索引从0开始,即第一个字符的索引是0,第二个字符的索引是1,以此类推。
通过索引可以方便地获取到字符串中的某个部分:
str = "Hello World"
print(str[1:5]) # 输出:ello
上述代码中,str[1:5] 表示从字符串 str 中取出索引范围在 [1, 5) 之间的字符。
如果需要取出字符串末尾的一部分,可以省略结束索引:
str = "Hello World"
print(str[6:]) # 输出:World
上述代码中,str[6:] 表示从字符串 str 中取出索引范围在 [6, 末尾) 之间的字符。
2.2 使用 split() 函数
split() 函数可以根据指定的分隔符对字符串进行分割,并返回分割后的子串列表。
str = "Hello World"
print(str.split(" ")) # 输出:["Hello", "World"]
上述代码中,str.split(" ") 表示将字符串 str 按照空格分隔,并返回一个字符串列表。可以根据列表索引获取到需要的子串。
2.3 使用 find() 和 join() 函数
find() 函数可以查找字符串中指定子串的位置,如果找到则返回该子串的起始索引值,否则返回 -1。
join() 函数可以将一个字符串列表连接为一个字符串。通过将分割符直接插入到字符串列表的每个元素之间,即可在连接后的字符串中找到指定的子串。
str = "Hello World"
subStr = "Wo"
index = str.find(subStr)
if index != -1:
subStr = '_'.join([str[:index], str[index:index+len(subStr)], str[index+len(subStr):]])
print(subStr) # 输出:Hello_Wo_rld
上述代码中,首先使用 find() 函数查找字符串 str 中子串 subStr 的位置,如果找到则使用 join() 函数加入分隔符 _,然后返回连接后的字符串;否则直接返回原字符串。
3. 使用场景
字符串截取是 Python 中非常实用的操作之一。以下是一些常见的使用场景:
3.1 处理字符串数据
在处理字符串数据时,经常需要截取字符串中某一部分用于处理或展示。
例如,需要从一个人名字符串中提取出姓氏可以使用索引方式截取:
name = "张三"
last_name = name[0]
print(last_name) # 输出:张
因为姓氏在中文名中通常是单字,因此只需要取字符串的第一个字符即可。
3.2 清理文本数据
在处理文本数据时,经常需要清除一些不必要的标点符号、HTML标签等。
例如,需要从一个网页中提取出正文并去除其中的HTML标签,可以使用 find() 函数查找并使用 join() 函数替换对应的标签。
import re
def strip_tags(html):
tag_re = re.compile(r'<[^>]+>')
return tag_re.sub('', html)
html = '
正文内容'
content = strip_tags(html)
print(content) # 输出:正文内容
上列代码中,strip_tags() 函数用于清除 HTML 中的标签,使用正则表达式查找 HTML 标签,然后使用 sub() 函数将标签替换为空字符串,最后返回清理后的文本。
3.3 格式化输出
在输出格式化文本时,经常需要使用字符串截取操作。例如,需要将日期从 "YYYY-MM-DD" 的格式转换为 "MM/DD/YYYY" 的格式,可以使用 split() 函数分割字符串,并重新连接为需要的格式。
date = "2021-07-01"
parts = date.split("-")
newDate = "/".join([parts[1], parts[2], parts[0]])
print(newDate) # 输出:07/01/2021
上列代码中,首先使用 split() 函数将日期字符串分割为各个部分,然后再使用 join() 函数将各个部分按照需要的格式连接。
4. 总结
字符串截取在 Python 中是一项非常有用的操作。除了常用的索引方式外,还可以使用 split() 函数、find() 函数和 join() 函数等多种方式进行截取。
在应用中,字符串截取通常用于处理一些非结构化或者半结构化的文本数据,例如从网页中提取关键信息、清洗文本数据等。