首页> python> python编程基础> 文章内容
python入门教程之数组切片
来源 :中华考试网 2020-12-08
中切片的基本格式是 array[startstep],表示对 array 在 start 到 end 之前以 step 为间隔取切片。注意这里的区间是 [start, end),也就是左闭右开。比如:
s = 'hello'
s[0:5:2]
# 表示取 s 的第 0、2、4 个字符,结果是 'hlo'
再举几个例子
s[0:5] # 不写 step 默认就是 1,因此得到 'hello'
s[1:] # 不写 end 默认到结尾,因此还是得到 'ello'
s[n:] # 获取 s 的最后 len(s) - n 个元素
s[:2] # 不写 start 默认从 0 开始,因此得到 'he'
s[:n] # 获取 s 的前 n 个元素
s[:-1] # 负数表示倒过来数,因此这会刨除最后一个字符,得到 'hell'
s[-2:] # 同上,表示获取最后两个字符,得到 'lo'
s[::-1] # 获取字符串的倒序排列,相当于 reverse 函数
step 和它前面的冒号要么同时写,要么同时不写,但 start 和 end 之间的冒号不能省,否则就不是切片而是获取元素了。再次强调 array[start:end] 表示的区间是 [a, b),也许你会觉得这很难记,但同样的,这会得出以下美妙的公式:
array[:n] + array[n:] = array (0 <= n <= len(array))
用代码来表示就是:
s = 'hello'
s[:2] + s[2:] == s
# True,因为 s[:2] 是 'he',s[2:] 是 'llo'
切片不仅可以用来获取数组的一部分值,修改切片也可以直接修改数组的对应部分,比如:
a = [1, 2, 3, 4, 5, 6]
a[1:3] = [22, 33, 44]
# a = [1, 22, 33, 44, 4, 5, 6]
并没有人规定切片的新值必须和原来的长度一致:
a = [1, 2, 3, 4, 5, 6]
a[1:3] = [3]
# a = [1, 3, 4, 5, 6]
a[1:4] = []
# a = [1, 6],相当于删除了中间的三个数字
但切片的新值必须也是可迭代的对象,比如这样写是不合法的:
a = [1, 2, 3, 4, 5, 6]
a[1:3] = 3
# TypeError: can only assign an iterable
python课程免费试听预约
- 地区:
- 北京
- 天津
- 上海
- 江苏
- 浙江
- 山东
- 江西
- 安徽
- 广东
- 广西
- 海南
- 辽宁
- 吉林
- 黑龙江
- 内蒙古
- 山西
- 福建
- 河南
- 河北
- 湖南
- 湖北
- 四川
- 重庆
- 云南
- 贵州
- 新疆
- 西藏
- 陕西
- 青海
- 宁夏
- 甘肃
- 姓名:
- 手机:
如果你现在想学习python,赢取高薪工作机会,非常简单,填写下面信息,学好python技术高薪工作机会唾手可得。