情形:今天在處理檔案的時候發現
list_a = [a, b, c, d]
for i in range(2):
temp = list_a
temp[2] = temp[2] + "_i"
print(temp[2])
想象輸出是:
想象輸出 | 實際輸出
c_0 | c_0
c_1 | c_0_1
c_2 | c_0_1_2
隱隱感覺那裡不對。怎麼temp起不到作用了呢?
有以下幾個問題
temp=list_a
真實作用是什麼?
list複製的操作怎麼完成?
心裡隱隱有了一點答案,python入門時記得變數相當於c指標,指向不同的物件
回過頭查詢python變數的描述得知:
python變數是乙個符號名稱,它是對物件的引用或指標。將物件分配給變數後,即可使用該名稱引用該物件。但是資料本身仍然包含在物件中。現在回答問題0:
q:temp=list_a
真實作用是什麼?
r: 使temp和list_a一樣指向了同乙個list物件。
通過檢索得到了list物件的幾個複製(拷貝)方法
import copy
list_a = [1,2,3,[4,5,6],7,8]
temp = list_a
temp1 = list_a[:]
temp2 = copy.copy(list_a)
te*** = copy.deepcopy(list_a)
temp4 = list(list_a)
temp5 = list_a*1
list_a[2] = 12
print(list_a, temp, temp1, temp2, te***, temp4, temp5, sep='\n')
[1, 2, 12, [4, 5, 6, 14], 7, 8] #賦值
[1, 2, 12, [4, 5, 6, 14], 7, 8] #list_a
[1, 2, 3, [4, 5, 6, 14], 7, 8] #list_a[:]
[1, 2, 3, [4, 5, 6, 14], 7, 8] #copy.copy(list_a)
[1, 2, 3, [4, 5, 6], 7, 8] #copy.deepcopy(list_a)
[1, 2, 3, [4, 5, 6, 14], 7, 8] #list(list_a)
[1, 2, 3, [4, 5, 6, 14], 7, 8] #list_a*1
python 基本語法 拾遺
django 開發中一般見到的python 內部類,最多是在model 設計過程中。所謂內部類,就是在類內部定義的類,主要目的是為了更好的抽象現實世界。內部類的距離 汽車是個類,汽車的地盤,輪胎也可以抽象為類,將其定義到汽車類中,則形成了內部類,更好的描述汽車類,因為底盤,輪胎是汽車的一部分 一般不...
Python 並行 併發拾遺
同時做某些事情,可以互不干擾的同一時刻做幾件事情 並行 是一條高速路上的多條車道,每條車道上可能同時有車輛在跑,是同時發生的概念 同時做某些事情,但是乙個時間段內有事情要處理 併發 是眾多車輛在乙個時間內要通過路面的時間,比如下班時一大波人向食堂湧去,搶購時一大波請求向服務端湧去 1 佇列 緩衝區 ...
Python複習 拾遺 3
一維資料格式化及其處理 一維資料的表示 如果資料間有序,使用列表型別 for迴圈 無序使用集合 for迴圈 一維資料的儲存 空格分隔,不換行 缺點 資料中不能有空格 逗號分隔 缺點不能有英文逗號 所以使用文章不會出現的特殊符號 一維資料的處理 儲存檔案 列表或者集合 儲存檔案 列表或者集合 複習.s...