码迷,mamicode.com
首页 > 编程语言 > 详细

python3-切片

时间:2018-06-24 13:07:06      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:end   索引   取出   创建   范围   切片   mic   python3   数列   

取一个list或tuple的部分元素是非常常见的操作。比如,一个list如下:

L = ["Michael", "Sarah", "Tracy", "Bob", "Jack"]

取前3个元素,应该怎么做/

笨方法:

   

>>> L[0],L[1],L[2]
["Michael", "Sarah", "Tracy"]
["Michael","Sarah","Tracy"]

之所以是笨方法是因为要是取n个数我们就没辙了。

取前N个元素,也就是索引为0-(N-1)的元素,可以用循环

>>> L = ["Mercedes","nationality","hand","coat"]
>>> r = []
>>> n = 3
>>> for i in range(n):
...  r.append(L[i])
...
>>> r
[Mercedes, nationality, hand]

 对这种经常取指定索引范围的操作用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。

对应上面 的问题,取三个元素,用一行代码就可以完成切片:

>>> L[0:3]

["Michael", "Sarah", "Tracy"]

L[0:3]表示从索引0的位置开始取,知道索引3结束,但不包括3 即0,1,2正好是三个数

如果第一个索引是0,还可以省略:

>>> L[:3]
["Michael", "Sarah", "Tracy"]

也可以从索引1开始,取出两个元素出来:

L[1:3]
["Michael", "Sarah", "Tracy"]

类似的,既然Python支持L[-1]取倒数第一个元素,那么同样支持倒数切片,试试:

>>>L[-1]
["Bob", "Jack"]

>>>L[-2:-1]
["Bob"]

记住倒数第一个元素的索引是-1;

 

切片操作十分有用。我们先创建一个0-99的数列:

>>>L = list(range(1000))
>>>L
[0,1,2,3...,99]

可以通过切片轻松取出某一段数列。比如前10几个数:

L[:10]
[0,1,2,3,4,5,6,7,8,9]

后10个数:

>>>L[-10:]
[90,91,92,93,94,95,96,97,98,99]

前11-20个数:

>>>L[10:20]
[10,11,12,13,14,15,16,17,18,19]

前10个每两个取一个:

 

python3-切片

标签:end   索引   取出   创建   范围   切片   mic   python3   数列   

原文地址:https://www.cnblogs.com/qjuly/p/9219885.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!