Skip to content

切片

字符串、列表、元组都能切片。写法是 对象[起点:终点:步长]。包含起点,不包含终点。

s = "abcdefghijkl"

print(s[1])
print(s[5])
print(s[1:5])

s[1:5] 取下标 1 到 4。

结果

b
f
bcde

第三个参数是步长

print(s[0:5:1])
print(s[0:5:2])
print(s[0:5:3])

结果

abcde
ace
ad

步长为 1 时和原来一样。步长为 2 表示隔一个取一个。s[0:5:3] 的结果是 ad

省略写法

print(s[:5])
print(s[0:])
print(s[:])

起点不写表示从 0 开始,终点不写表示到末尾。

abcde
abcdefghijkl
abcdefghijkl

长度和下标

s1 = "hello"
print(f"s1的长度{len(s1)}")
print(s1[4])
print(s1[0:4])
print(s1[0:10])

len(s1) 是 5,最后一个下标是 4。s1[0:4] 不包含最后的 o。终点写得比长度大,也只取到末尾。

s1的长度5
o
hell
hello

反序切片

print(s[5:0:-1])
print(s[::-1])

s[5:0:-1]fedcb,不包含 s[0]s[::-1] 是整个字符串倒过来:lkjihgfedcba