Python序列中元素的訪問方式(四)Python數組和列表切片的區別

Python序列中元素的訪問方式(一)Python字符串元素的訪問、切片與索引

Python序列中元素的訪問方式(二)Python列表元素的訪問、切片與索引

Python序列中元素的訪問方式(三)Python.numpy數組元素的訪問、切片與索引

Python序列中元素的訪問方式(四)Python數組和列表切片的區別

還是蠻有意思的一個東西。

數組的切片是原始數組的視圖,也就是說數據沒有被複制,視圖上的任何修改都會直接反應到源數組上。

import numpy as np
array1 = np.array([1,2,3,4,5,6,7])
array2 = array1[1:]    #對數組1切片操作,數組2即是一個特定的視圖

#先查看一下原始數組和視圖數組
print(array1)   #[1 2 3 4 5 6 7]
print(array2)   #[2 3 4 5 6 7]

array2[0] = 10000   #對視圖進行操作

#再對兩個數組查看,對視圖的修改會反應到源數組上
print(array1)  #[    1 10000     3     4     5     6     7]
print(array2)  #[10000     3     4     5     6     7]

但是列表就不同了,對切片的操作不會反映到原始列表上,具體看下例子:

list1 = [1,2,3,4,5,6,7]
list2 = list1[1:]    #對列表1切片操作

#先查看一下原始列表和切片列表
print(list1)   #[1 2 3 4 5 6 7]
print(list2)   #[2 3 4 5 6 7]

list2[0] = 10000

#再對兩個列表查看
print(list1)  #[1, 2, 3, 4, 5, 6, 7]
print(list2)  #[10000, 3, 4, 5, 6, 7]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章