變數值的修改

2022-05-25 06:39:11 字數 1040 閱讀 7816

我們先來看一段程式

sublist = [""] * 3

# ['', '', '']matrix = [sublist] * 3

# [['', '', ''], ['', '', ''], ['', '', '']]

matrix[0][0]

#「」

matrix[0][0] = "x"

#['x', '', '']

#[['x', '', ''], ['x', '', ''], ['x', '', '']]

上圖程式中,我們建立了乙個二維矩陣matrix,只是想去修改matrix元素,但是結果卻是第一行全部被修改了。這是什麼原因呢,如下圖所示:

當我們利用乘法的形式來建立matrix時,matrix[0]、matrix[1]和matrix[2]都指向了sublist的位址。所以當我們修改matrix[0]時,matrix[1]和matrix[2]的值也對應著改變。

print

(id(sublist))

#1872834323656

print

(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 了嗎?這就是變數的定...