Skip to content

切片

字符串,列表等都能使用切片功能。

s = "abcdefghijkl"

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

这段代码的含义是:在字符串里取第1个到第5个。包含第一个,不包含第5个

结果

b
f
bcde

切片的第三个参数

""" 切片的第三个参数 """

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

结果

abcde
ace

当第三个参数为1时,结果还是以前一样 当结果是2是发生了变化,结果 就从0开始隔2取值(也就是1舍弃了)

那么 s[0:5:3] 结果就是 ad ?试一下看看对不对?

参数的特殊写法

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

结果

特殊参数
abcde
abcdefghijkl
abcdefghijkl

第一个默认不写表示 0,最后一个不写表示到尾

注意

s1="hello"
print ("s1的长度%d" % len(s1))
"""
len(s1) = 5
最后一个下标是 4 ,因为从0开始
"""
print (s1[4])

""" 这里是不包含最后一个 o 的 """
print (s1[0:4])

""" 切片可以支持 大于长度的值,但是结果 还是取总长度"""

print (s1[0:10])

结果

s1的长度5
o
hell
hello

反序切片 (从后往前)

print ("反序切片")
print (s[5:0:-1])

结果

反序切片
fedcb

不包含 "a",也就是 s[0]

全部反序

print (s[::-1])

看看结果 是什么?