当前位置:首页>python>Python索引与切片

Python索引与切片

  • 2026-09-03 18:00:17
Python索引与切片

📌 索引:数据的“精准导航仪”

索引是Python中访问序列元素(字符串、列表、元组等)的数字编号系统,就像图书馆里每本书的索书号。


一、索引:两种计数方式

正向索引(从左到右)

text = "Python"# 元素: P    y    t    h    o    n# 索引: 0    1    2    3    4    5print(text[0])  # P - 第一个字符print(text[3])  # h - 第四个字符

反向索引(从右到左)

text = "Python"# 元素: P    y    t    h    o    n# 索引:-6   -5   -4   -3   -2   -1print(text[-1])  # n - 最后一个字符print(text[-3])  # h - 倒数第三个字符

二、切片

🎯 核心概念:左闭右开原则

最重要的规则:切片 [start:end] 包含 start,不包含 end!

s = "0123456789"# 直观理解:方括号代表取值的边界# [0:5] 就像用剪刀在 0 和 5 之间剪开#   0↓   1   2   3   4   5↓   6   7   8   9#   |                    |# 包含                  不包含print(s[0:5])  # "01234" (只有0-4,没有5!)

2. 切片参数详解表

# 完整切片语法:s[start:stop:step]# 参数含义:# start: 起始位置(包含) - 默认0# stop:  结束位置(不包含)- 默认len(s)# step:  步长(正负控制方向)- 默认1s = "ABCDEFGHIJ"# 不同组合效果print("原字符串:", s)print("s[2:6]    ->", s[2:6])      # CDEF (索引2-5)print("s[:5]     ->", s[:5])       # ABCDE (从头到索引4)print("s[5:]     ->", s[5:])       # FGHIJ (索引5到末尾)print("s[::2]    ->", s[::2])      # ACEGI (隔一个取)print("s[1::2]   ->", s[1::2])     # BDFHJ (从索引1开始隔一个取)print("s[::-1]   ->", s[::-1])     # JIHGFEDCBA (反转)print("s[-3:-1]  ->", s[-3:-1])    # HI (倒数第3、2个)print("s[-1:-4:-1]->", s[-1:-4:-1]) # JIH (反向切片)

📝 总结表格

操作
语法
示例
结果
说明
正向索引s[n]"Python"[2]'t'
取第n个字符
反向索引s[-n]"Python"[-2]'o'
倒数第n个字符
基本切片s[start:end]"Python"[2:5]'tho'
左闭右开原则
省略开始s[:end]"Python"[:4]'Pyth'
从头到end-1
省略结束s[start:]"Python"[2:]'thon'
从start到末尾
复制全部s[:]"Python"[:]'Python'
完整复制
带步长s[::step]"Python"[::2]'Pto'
每隔step-1个取
反向步长s[::-1]"Python"[::-1]'nohtyP'
反转字符串

最新文章

随机文章