Python字符串及其操作
1.概述
- 在Python中,字符串是除数字外最重要的数据类型。字符串无处不在:将字符串输出到屏幕上;从用户的键盘输入读取字符串;文件通常被视为大型字符串;网页大部分是由文本组成的。
- 字符串是一种聚合数据结构,可充分利用索引和切片—用于从字符串中提取子串。
- 而Python正则表达式库,是一种用来处理字符串的微型语言,但功能强大。
2.通用序列操作
- Python中,字符串、列表和元组都属于序列。
- 序列有一些通用的操作。包括:索引(indexing)、切片(slicing)、加(adding)、乘(multiplying)、检查某个元素是否属于序列的成员(成员资格)、计算序列长度、找出最大元素和最小元素等。
2.1索引
- 序列中的所有元素都是有编号的—从0开始递增。这些元素可以通过编号分别访问。索引有正索引和负索引,可根据实际情况选用。
- 字符串就是一个由字符组成的序列,处理字符串时,经常需要访问其中的各个字符。索引0指向第1个字符。
例如:字符串’apple’的正索引和负索引
s = 'apple'
#索引
s[0]
for i in s:
print(i,end=" ")
for i in range(len(s)):
print(s[-(i+1)],end="") #反转列表,用索引
for i in reversed(s): #反转列表 用函数
print(i,end="")
2.2 切片
- 与使用索引访问单个元素类似,可以使用分片操作来访问一定范围内的元素。分片是实际应用中经常使用的技术,被截取的部分称为“子串”
- Python 3支持的分片格式为:S[i:j:k]
表示:索引S对象中的元素,从索引为i直到索引为j-1,每隔k个元素索引一次,第三个限制k为步长,默认为1,也可以使用负数作为步长,步长-1表示分片将会从右至左进行而不是通常的从左至右,实际效果主是将序列反转。 - 在Python中,还可以使用split()函数来截取字符串。
#切片索引,类似列表
food = "apple pie"
food[0:5]
food[0:5:2]
food[::2]
food[1::2]
food[::-1] #反转字符串 还可以用函数 reversed(s)
#一个应用
def get_ext(fname):
"""
返回文件的扩展名
"""
dot = fname.rfind(".") #获得.的索引(从右边开始找)
if dot == -1:
return ''
else:
return fname[(dot+1):]
get_ext("apple.avi")
2.3 字符串合并
这一节参考了博客.
Python中有join()和os.path.join()两个函数,具体作用如下:
join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
os.path.join(): 将多个路径组合后返回
-
join()函数
语法: ‘sep’.join(seq)
参数说明
sep:分隔符。可以为空
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串. -
os.path.join()函数
语法: os.path.join(path1[,path2[,…]])
返回值:将多个路径组合后返回
注:第一个绝对路径之前的参数将被忽略.
#字符串拼接,合并
str1 = "Hello, "