当前位置: 首页 > 文档资料 > Python 学习笔记 >

切片

优质
小牛编辑
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的切片非常灵活,一行代码就可以实现很多行循环才能完成的操作