Bootstrap

python对字符串切片、split分割、截取数据

字符串的切片认识

切片 方法适用于 字符串列表元组
- 切片 使用 索引值 来限定范围,从一个大的 字符串切出 小的 字符串
- 列表元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
- 字典 是一个 无序 的集合,是使用 键值对 保存数据
在这里插入图片描述
使用方法:

字符串[开始索引:结束索引:步长]

注意

  1. 指定的区间属于 左闭右开[开始索引, 结束索引) => 开始索引 >= 范围 < 结束索引起始 位开始,到 结束位的前一位 结束(不包含结束位本身)
  2. 从头开始,开始索引 数字可以省略,冒号不能省略
  3. 到末尾结束,结束索引 数字可以省略,冒号不能省略
  4. 步长默认为 1,如果连续切片,数字和冒号都可以省略

索引的顺序和倒序

  • 在 Python 中不仅支持 顺序索引,同时还支持 倒序索引
  • 所谓倒序索引就是 从右向左 计算索引
  • 最右边的索引值是 1,依次递减
    演练:
>>> num = "0123456789"
>>> num
'0123456789'

1、截取2-5的内容


>>> print(num[2:6])
2345
>>> 
  1. 截取从 2 ~ 末尾 的字符串
>>> print(num[2:])
23456789
>>> 
  1. 截取从 开始 ~ 5 位置 的字符串

  2. 截取完整的字符串

  3. 从开始位置,每隔一个字符截取字符串

  4. 从索引 1 开始,每隔一个取一个

  5. 倒序切片 -1 表示倒数第一个字符

  6. 截取从 2 ~ 末尾 - 1 的字符串

  7. 截取字符串末尾两个字符

  8. 字符串的逆序

>>> print(num[:6])
012345
>>> print(num[:])
0123456789
>>> print(num[::2])
02468
>>> print(num[1::2])
13579
>>> print(num[-1])
9
>>> print(num[2::-1])
210
>>> print(num[-2:])
89
>>> print(num[::-1])
9876543210

在截取字符串时,如果指定的索引不存在,则会抛出异常。IndexError:string index out of range

要解决这个问题,可以使用try…except语句获取异常。

二、python字符串截取split

1.截取字符串

#在截取字符串时,如果指定的索引不存在,则会抛出异常。IndexError:string index out of range

要解决这个问题,可以使用try…except语句获取异常。

str = "为中国运动员加油!"
try: 
    substr = str[10]
except IndexError:
    print("指定的索引不存在")

2.分割字符串

语法:str.split(sep.maxsplit)

str:表示要进行分割的字符串。

sep:用于指定分隔符,默认值为None(包括空格、换行符\n、制表符\t)。

maxsplit:用于指定分割的次数,如果不指定该参数,或值-1,则分割次数没有限制,否则返回结果列表的元素个数最多为maxsplit+1。

注意:如果不指定sep参数,则也不能指定maxsplit参数。

str = "w w w.baidu.com"
list1 = str.split()      #采用默认分隔符进行分割
list2 = str.split('.')   # 采用"."进行分割
list3 = str.split(' ')    #采用空格进行分割
list4 = str.split(' ',3)    # 采用空格进行分割,且只分割前3个字符

print(list1)
print(list2)
print(list3)
print(list4)

运行结果:

['w', 'w', 'w.baidu.com']
['w w w', 'baidu', 'com']
['w', 'w', 'w.baidu.com']
['w', 'w', 'w.baidu.com']
;