🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
1. 取一个list或tuple的部分元素是非常常见的操作。比如,一个list如下: ``` >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] ``` 2. 取前3个元素,应该怎么做? 笨办法: ``` >>> [L[0], L[1], L[2]] ['Michael', 'Sarah', 'Tracy'] ``` 之所以是笨办法是因为扩展一下,取前N个元素就没辙了。 3. 取前N个元素,也就是索引为0-(N-1)的元素,可以用循环: ``` >>> r = [] >>> n = 3 >>> for i in range(n): ... r.append(L[i]) ... >>> r ['Michael', 'Sarah', 'Tracy'] ``` 对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。 4. 对应上面的问题,取前3个元素,用一行代码就可以完成切片: ``` >>> L[0:3] ['Michael', 'Sarah', 'Tracy'] ``` `L[0:3]`表示,从索引`0`开始取,直到索引`3`为止,但不包括索引`3`。即索引`0`,`1`,`2`,正好是3个元素。 如果第一个索引是`0`,还可以省略: ``` >>> L[:3] ['Michael', 'Sarah', 'Tracy'] ``` 也可以从索引1开始,取出2个元素出来: ``` >>> L[1:3] ['Sarah', 'Tracy'] ``` 类似的,既然Python支持`L[-1]`取倒数第一个元素,那么它同样支持倒数切片,试试: ``` >>> L[-2:] ['Bob', 'Jack'] >>> L[-2:-1] ['Bob'] ``` **记住倒数第一个元素的索引是`-1`。**