晓夏

北漂的女孩

Good Luck To You!

python 切片

浏览量:530

  • 对list进行切片   

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

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']

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

print L[0], L[1], L[2] #['Admin', 'Lisa', 'Bade']

切片操作只需:

# coding:utf8
L = ['Admin','Lisa','Bade','Pase']
print L[0:3]

L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。

注意只用一个 : ,表示从头到尾:

# coding:utf8
L = ['Admin','Lisa','Bade','Pase']
print L[::2] #['Admin', 'Bade']

L[::2] 会每两个元素取出一个来,也就是隔一个取一个。

任务

range()函数可以创建一个数列:

>>> range(1, 101)
[1, 2, 3, ..., 100]

请利用切片,取出:

1. 前10个数;
2. 3的倍数;
3. 不大于50的5的倍数。

# coding:utf8
L = range(1, 101)
print L[0:10]
print L[2::3]#从第二个开始取,每个3个取一个
print L[4:50:5] # 从4开始取,做大到50,每隔5个取一个
  • 倒叙切片

>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']

>>> L[-2:]
['Bart', 'Paul']

>>> L[:-2]
['Adam', 'Lisa']

>>> L[-3:-1]
['Lisa', 'Bart']

>>> L[-4:-1:2]
['Adam', 'Bart']

任务

利用倒序切片对 1 - 100 的数列取出:

* 最后10个数;

* 最后10个5的倍数。

# coding:utf8
S = range(1,101)
print S[-10:]
#第一种方法
print S[-46::5]
#第二种方法  
print S[4::5][-10:]




神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。