enumerate函式 深拷貝淺拷貝

2022-08-14 07:18:15 字數 1371 閱讀 1900

enumerate()是python的內建函式,

enumerate引數為可遍歷、迭代的物件,多使用者for迴圈中得到計數、同時獲得索引和值,返回乙個enumerate物件

list = [4,5,6,7,0,1,2]

for index,value in

enumerate(list)

for index,value in enumerate(list,1)#

索引從1開始

統計檔案的行數、可以用enumerate

count =0

for index, line in enumerate(open('

123.txt

','r

',encoding='

utf-8

')):

count +=1

淺拷貝:

import

copy

list1 = [[1,2],'

fei',66]

list2 = copy.copy(list1) #

淺拷貝print(id(list1)) #

222196936

print(id(list2)) #

222197064 物件位址不同

#改變原始物件中為可變型別的元素的值,會同時影響拷貝物件;

list1[0][0] = 2

print(list2) #

[[2, 2], 'fei', 66]

#改變原始物件中為不可變型別的元素的值,不會響拷貝物件。

list1[1] = '

get'

print(list2) #

[[2, 2], 'fei', 66]

深拷貝:

import

copy

list1 = [[1,2],'

fei',66]

list2 = copy.deepcopy(list1) #

深拷貝print(id(list1)) #

222196936

print(id(list2)) #

222197064 物件位址不同

#改變原始物件中為可變型別的元素的值,不影響拷貝物件;

list1[0][0] = 2

print(list2) #

[[1, 2], 'fei', 66]

#改變原始物件中為不可變型別的元素的值,不影響拷貝物件。

list1[1] = '

get'

print(list2) #

[[1, 2], 'fei', 66]

拷貝建構函式淺拷貝深拷貝

1 函式的引數為類物件且引數採用值傳遞方式 2 將類物件做為函式的返回值。2.淺拷貝 所謂淺拷貝,指的是在物件複製時,只對物件中的資料成員進行簡單的賦值 預設拷貝建構函式執行的也是淺拷貝。大多情況下 淺拷貝 已經能很好地 工作了,但是一旦物件存在了動態成員,那麼淺拷貝就會出問題了,讓我們考慮如下一段...

拷貝建構函式,深拷貝,淺拷貝

深淺拷貝的區別 淺拷貝是將原始物件中的資料型字段拷貝到新物件中去,將引用型字段的 引用 複製到新物件中去,不把 引用的物件 複製進去,所以原始物件和新物件引用同一物件 新物件中的引用型字段發生變化會導致原始物件中的對應欄位也發生變化。line line const line obj 深拷貝是在引用方...

淺拷貝 深拷貝

copy mutablecopy copy 不管是可變的,還是不可變的,結果都是不可變的 mutablecopy 不管是不可變的,還是可變的,結果都是可變的 nsmutablestring str nsmutablestring stringwithformat a nsarray arr1 str...