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:]
神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。