切片
优质
小牛编辑
129浏览
2023-12-01
举个例子
给你一个list 让你取前30个怎么办?
a = []
# 很多数据
a[0],a[1]
#按照这种方式吗?这也太复杂了!
for i in a:
pass
## 这种方式也是可以的,但是还是有点复杂了,在编程语言中,或者是我们的编程思想中,less is more是最重要的,也就是说,写的越少越好。
# 所以我们可以采用切片的方式
a[1:3],从第二个开始到第四个结束,但是并不包括第四个。(编程中脚码是0算第一个)
我们看切片常用的几种方式
- a[-2:-1]从倒数第一个到倒数第二个
- a[-1]就取倒数第一个
- a[1:3]常规取法字面意思
- a[:3]省略了0
- a[1:]从1开始省略了结尾
- a[-10:]
也就是说,不论你用的正数表示还是负数表示,顺序都是没变的,都是从第一个数字排序到最后一个
1 2 3 4 5 6
a[-3:] 也就是 456
只不过,最后一个数字表示的是-1了,而不是-0, 。
特殊用法
- a[:10:2]前十个数字每两个取一个
- a[:]复制这个list
- a[::5]这个list每5个取一个。
>>> a = [1, 2, 3, 4]
>>> print(a[::2])
[1, 3]
tuple
tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple
(0, 1, 2, 3, 4, 5)[:3]
(0, 1, 2)
字符串也可以用切片
'avddsd'[1:3]
有了切片操作,很多地方循环就不再需要了。Python的切片非常灵活,一行代码就可以实现很多行循环才能完成的操作