2019.7.21 切片

切片是指:通过 ‘:’符号批量提取tuple和list中的元素。

 

举例:

L=[1,2,3]

print L[0:3]
print L[:3]
print L[1:3]
print L[-3:-1]

#结果

[1, 2, 3]
[1, 2, 3]
[2, 3]
[1, 2]

L[m:n] 是从下标索引m提取到索引n-1,m为0时可以省略不写,如上文code的第二个print

 

提取一个List的前十个和后十个元素:

L3=range(100);
print L3[:10] ;
print L3[-10:]


[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]

 

提取从数字11到20

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

 

前10个数,每两个取一个

L3[:10:2]
[0, 2, 4, 6, 8]

 

所有的数,每5个取一个

L3[::5]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95

 

复制L的内容,不能用 =号,因为这样二者指向的其实是一个List

 

L4=L3
L4[1]=0
print L3[1]
0

可以用[:]完成复制

L5=L3[:]
L5[1]=0
prinr L3[1]
1

 

对于tuple,同样可以用切片的方式提取

(1,2,3,4,5)[:3]
(1, 2, 3)

 

对于字符串,可以利用切片来提取中间的字符:

A='ABCDEFG'
A[:3] 'ABC'

A[-3:] 'EFG'

unicode字符串也可以同样这样处理

#字符串前加u是unicode,不加是UTF-8,UTF-8转化为unicode的函数是decode

B=A.decode('UTF-8')

B[::2]

u'ACEG'

 

用切片处理的也可以用循环处理,但是明显切片处理的代码更简单一些

 

posted @ 2019-07-21 22:30  ShineLe  阅读(258)  评论(0)    收藏  举报