我們先來看一段程式
sublist = [""] * 3# ['', '', '']matrix = [sublist] * 3
# [['', '', ''], ['', '', ''], ['', '', '']]
matrix[0][0]#「」
matrix[0][0] = "x"上圖程式中,我們建立了乙個二維矩陣matrix,只是想去修改matrix元素,但是結果卻是第一行全部被修改了。這是什麼原因呢,如下圖所示:#['x', '', '']
#[['x', '', ''], ['x', '', ''], ['x', '', '']]
當我們利用乘法的形式來建立matrix時,matrix[0]、matrix[1]和matrix[2]都指向了sublist的位址。所以當我們修改matrix[0]時,matrix[1]和matrix[2]的值也對應著改變。
(id(sublist))
#1872834323656
(id(matrix[0]))
#1872834323656
print(id(matrix[1]))
#1872834323656
print(id(matrix[2]))
#1872834323656
matrix = [[""] * 3 for _ in range(3)]#[['', '', ''], ['', '', ''], ['', '', '']]
matrix[0][0] = "x"#[['x', '', ''], ['', '', ''], ['', '', '']]
python變數值 Python變數值轉變量
今天用python讀取乙個有很多欄位的配置檔案,配置檔案中的格式類似 pidstart 2600 startfid 47 starttid 450 startfirst 1 message 一般會想到的是 config open configpath,r for item in config set...
PHP 函式內修改外部變數值
直接上 如下 a str ab function change val echo a str.change val echo a str.echo str repeat 20 b str ab function change val 1 s echo b str.b str change val 1...
Makefile列印變數值
makefile第二講 列印出內容和使用變數 摘要 echo 開始生成最終執行檔案,請稍候.這一句便是將一條資訊輸出到終端,為何前邊有個 符號呢?有了這個符號該命令本身就不會輸出到終端 不理解,自己去掉或者加上 符號試試 實驗證明,字串可以不加引號。看到 objs main.o 了嗎?這就是變數的定...