其他對(duì)象的切片操作
前面的切片操作說明都以list為例進(jìn)行說明,但實(shí)際上可進(jìn)行的切片操作的數(shù)據(jù)類型還有很多,包括元組、字符串等等。
>>>foriinrange(1,100)[2::3][-10:]:
print(i)
就是利用range函數(shù)生成1-99的整數(shù),然后取3的倍數(shù),再取最后十個(gè)。
常用切片操作
以列表:a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 為說明對(duì)象
1.取偶數(shù)位置
>>>b = a[::2][0,2,4,6,8]
2.取奇數(shù)位置
>>>b = a[1::2][1,3,5,7,9]
3.拷貝整個(gè)對(duì)象
>>>b = a[:]#★★★★★
>>>print(b)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>print(id(a))#41946376
>>>print(id(b))#41921864
或
>>>b = a.copy()
>>>print(b)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>print(id(a))#39783752
>>>print(id(b))#39759176
需要注意的是:[:]和.copy()都屬于“淺拷貝”,只拷貝最外層元素,內(nèi)層嵌套元素則通過引用,而不是獨(dú)立分配內(nèi)存。
>>>a = [1,2,['A','B']]
>>>print('a={}'.format(a))
>>>b = a[:]
>>>b[0] =9#修改b的最外層元素,將1變成9
>>>b[2][0] ='D'#修改b的內(nèi)嵌層元素
>>>print('a={}'.format(a))
>>>print('b={}'.format(b))
>>>print('id(a)={}'.format(id(a)))
>>>print('id(b)={}'.format(id(b)))
a=[1,2, ['A','B']]#原始a
a=[1,2, ['D','B']]#b修改內(nèi)部元素A為D后,a中的A也變成了D,說明共享內(nèi)部嵌套元素,但外部元素1沒變。
b=[9,2, ['D','B']]#修改后的b
id(a)=38669128
id(b)=38669192
4.修改單個(gè)元素
>>>a[3] = ['A','B']
[0,1,2, ['A','B'],4,5,6,7,8,9]
5.在某個(gè)位置插入元素
>>>a[3:3] = ['A','B','C'][0,1,2,'A','B','C',3,4,5,6,7,8,9]>>>a[0:0] = ['A','B']['A','B',0,1,2,3,4,5,6,7,8,9]
6.替換一部分元素
>>>a[3:6] = ['A','B'][0,1,2,'A','B',6,7,8,9]
作者:馬爾代夫Maldives
鏈接:http://www.itdecent.cn/p/15715d6f4dad
來源:簡(jiǎn)書
簡(jiǎn)書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。