python中 字符串的下标与切片

1.字符串中"下标"的使用

列表与元组支持下标索引好理解,字符串实际上就是字符的数组,所以也支持下标索引。

如果有字符串:name = 'abcdef',在内存中的实际存储如下:

 

 

 

如果想取出部分字符,那么可以通过下标的方法,(注意python中下标从 0 开始)

name = 'abcdef'

print(name[0])

print(name[1])

print(name[2])

2.切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

切片的语法:[起始:结束:步长]:

注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。

name = 'abcdef'

print(name[0:3]) # 取 下标0~2 的字符

name = 'abcdef'

print(name[2:]) # 取 下标为2开始到最后的字符

name = 'abcdef'

print(name[1:-1]) # 取 下标为1开始 到 最后第2个 之间的字符

3.字符串常用操作

 

find

检测 str 是否包含在 mystr的0-len 位中   返回0 表示包含,1 表示不包含

mystr.find(str, start=0, end=len(mystr))

index

判断str 在mystr 在数组中的位置

print(mystr.index(str, 0, len(mystr)))

结果:0

count

返回 str在start和end之间 在 mystr里面出现的次数

mystr = 'abcd'

str = 'ab'

print(mystr.count(str, 0, len(mystr)))

结果:1

 

replace

把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.

mystr = 'abcd'

str1 = 'ab'

str2 = 'e'

print(mystr.replace(str1, str2, mystr.count(str1)))

结果:ecd

 

split

以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 2次,后面的不再分隔

mystr = 'a b c d'

print(mystr.split(" ", 2))  

结果:['a', 'b', 'c d']

capitalize

把字符串的第一个字符大写

mystr = 'a b c d'

mystr.capitalize()

结果:Ab c d

 

title

把字符串的每个单词首字母大写

mystr = 'ab c d'

print(mystr.title())

结果:Ab C D

 

startswith

检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False

mystr.startswith(obj)

endswith

检查字符串是否以obj结束,如果是返回True,否则返回 False.

mystr.endswith(obj)

lower

转换 mystr 中所有大写字符为小写

mystr.lower()

upper

转换 mystr 中的小写字母为大写

mystr.upper()

ljust

返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串

mystr.ljust(width)

rjust

返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串

mystr.rjust(width)

center

返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

mystr.center(width)

lstrip

删除 mystr 左边的空白字符

mystr.lstrip()

rstrip

删除 mystr 字符串末尾的空白字符

mystr.rstrip()

strip

删除mystr字符串两端的空白字符

 

rfind

类似于 find()函数,不过是从右边开始查找.

mystr.rfind(str, start=0,end=len(mystr) )

rindex

类似于 index(),不过是从右边开始.

mystr = 'abcd'

print(mystr.rindex('c', 0, len(mystr)))

结果:2

 

partition

把mystr以str分割成三部分,str前,str和str后

mystr = 'i love you'

str = 'love'

print(mystr.partition(str))

结果:('i ', 'love', ' you')

 

rpartition

类似于 partition()函数,不过是从右边开始.

mystr.rpartition(str)

splitlines

按照行分隔,返回一个包含各行作为元素的列表

mystr = 'i love baby\nditto'
print(mystr.splitlines())

结果:['i love baby', 'ditto']

 

isalpha

如果 mystr 所有字符都是字母 则返回 True,否则返回 False

 

isdigit

如果 mystr 只包含数字则返回 True 否则返回 False.

mystr.isdigit()

isalnum

如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False

mystr.isalnum()

isspace

如果 mystr 中只包含空格,则返回 True,否则返回 False.

mystr.isspace()

 

join

mystr 中每个字符后面插入str,构造出一个新的字符串

### Python字符串下标切片使用方法 #### 字符串的创建 在 Python 中,可以通过单引号 (`'`) 或双引号 (`"`) 来定义字符串。例如: ```python str1 = 'Hello, World!' str2 = "Hello, World!" ``` 这两种方式功能相同,可以根据实际需求选择其中之一[^1]。 --- #### 字符串下标访问 字符串中的每一个字符都可以通过其位置(即下标)单独访问。需要注意的是,在 Python 中,字符串下标是从 **0** 开始计数的。这意味着第一个字符的位置是 `0`,第二个字符的位置是 `1`,依此类推。 如果尝试访问超出范围的下标,则会引发 `IndexError` 错误。此外,还可以使用负数作为下标来从右向左访问字符串,其中 `-1` 表示最后一个字符,`-2` 表示倒数第二个字符,以此类推[^2]。 以下是几个例子: ```python s = "Python" print(s[0]) # 输出: P (第1个字符) print(s[2]) # 输出: t (第3个字符) print(s[-1]) # 输出: n (最后1个字符) print(s[-3]) # 输出: h (倒数第3个字符) ``` --- #### 字符串切片操作 切片是一种用于提取子字符串的操作。语法形式为 `string[start:end:step]`,具体说明如下: - `start`: 起始索引,默认为 `0`。 - `end`: 结束索引(不包含该位置),默认为字符串长度。 - `step`: 步长,默认为 `1`。 当省略某些参数时,Python 会自动填充默认值。下面是一些常见的切片用法及其效果: ##### 基本切片 ```python s = "abcdefg" # 提取从索引1到索引4之间的部分(不包括索引4) print(s[1:4]) # 输出: bcd # 如果只指定起始索引,结束索引默认为字符串末尾 print(s[3:]) # 输出: defg # 如果只指定结束索引,起始索引默认为0 print(s[:3]) # 输出: abc ``` ##### 反向切片 通过设置步长为负数,可以从右至左反向获取子字符串: ```python s = "abcdefg" # 使用步长为-1反转整个字符串 print(s[::-1]) # 输出: gfedcba # 提取从索引5到索引1之间的一部分并逆序排列 print(s[5:0:-2]) # 输出: fed ``` ##### 非连续切片 利用正整数值的步长可以实现非连续选取字符的功能: ```python s = "abcdefghi" # 每隔两个字符取出一个字符 print(s[::2]) # 输出: acegi # 从索引2开始每隔三个字符取出一个字符 print(s[2::3]) # 输出: cf ``` --- ### 总结 通过对字符串应用下标切片技术,能够灵活地处理数据片段。无论是简单的字符读取还是复杂的模式匹配前的数据预处理阶段,这些技巧都显得尤为重要。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独行客-编码爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值