Python——第二章:字符串操作——索引和切片
索引: 按照位置提取元素
可以采用索引的方式来提取某一个字符(文字)
s = "我叫周杰伦"
print(s[3]) #程序员都是从0开始数,这里的3代表第4位,也就是“杰”
print(s[0]) #0就是第1位“我”
print(s[-1]) # -表示倒数,-1表示倒数第一位“伦”
切片: 从一个字符串中提取一部分内容
为了方便识别,我对下面的字符串进行位数标记
s = "我叫周杰伦,你呢?你叫周润发吗?"
print(s[3:6]) # 从索引3位置进行切片, 切到6结束, 坑: 切片拿不到第二个位置“6”的元素
# 语法: s[start:end] 从start到end进行切片,但是取不到end 。在数学中这叫做左闭又开集合,大家可以理解为[start, end)
print(s[0:5]) # 从索引开头位置进行切片, 切到5结束
print(s[:5]) # 如果start是从开头进行切片, 可以省略
print(s[6:]) # 从start开始(6)一直截取到末尾
print(s[:]) #: 如果左右两端有空白. 表示开头或者结尾
print(s[-3:-1]) # 目前还是只能从左往右切片
这里特意书写一个错误写法
print(s[-1:-3]) # 没结果, 这里是坑!!!!还不会报错!
这种写法目前是错误的。这就引出了另一个参数——step步长
在没有步长step的参数时,切片只能从左往右进行
切片: step步长
s = "我爱你"
#可以给切片添加步长来控制切片的方向
print(s[::-1]) # -表示从右往左
结果是
你爱我
语法: s[start:end:step]
从start切到end, 每step个元素出来一个元素
步长:正数代表从左向右数,负数代表从右向左数。值代表每一步的间隔。
先看步长的正负符号,确定左右方向,再看步长的绝对值进行取值。
举例:
s="abcdefgh"
print(s[::2])
print(s[::-2])
第一个是+2。因此是从左往右数,步长为2,也就是每2位取1位(取的是第一位,但是正负值决定第一位的方向)。这里是从左往右数,第一位分别是aceg
第二个是-2。因此是从右往左数,步长为2,也就是每2位取1位(取的是第一位,但是正负值决定第一位的方向)。这里是从右往左数,第一位分别是hfdb
结果为
aceg
hfdb
举例:26个英文字母,
s = "abcdefghijklmnopqrstuvwxyz"
print(s[2:11:3])
print(s[2:26:3])
print(s[2::3])
print(s[-1:-10:-3])
print(s[:-10:-3])
print(s[:-26:-1])
print(s[::-1])
结果:大家好好体会其中结果的差异和左开右闭的区别
cfi
cfilorux
cfilorux
zwt
zwt
zyxwvutsrqponmlkjihgfedcb
zyxwvutsrqponmlkjihgfedcba
这个end取不到其实挺郁闷的,所以要想取到最后一位,一定要在end处写成空
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2022-08-30 Ubuntu系统 安装 Zabbix Server 6.0
2022-08-30 Ubuntu 命令使用方法
2022-08-30 Ubuntu 安装MySQL 8.0.23及以上版本
2022-08-30 mv 用法
2022-08-30 cp {,bak}用法(转载)