[問題] 請問for裡值的記憶體位址
numlist = [0]
print(id(numlist[0]))
for index, i in enumerate(numlist):
print(id(i))
print(id(numlist[index]))
numlist[index] = 100
i = 100
print(id(i))
print(id(numlist[index]))
輸出的結果是
8791232734000
8791232734000
8791232734000
8791232737200
8791232737200
也就是i跟numlist[index]的記憶體位址是一樣的
那為什麼i = 100不會改變numlist裡的值
而用numlist[index] = 100卻可以
另外發現賦值之後記憶體的位址也變了
請問這邊的運作方式是怎樣的呢
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.231.86.211
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1551058216.A.DF1.html
推
02/25 11:27,
6年前
, 1F
02/25 11:27, 1F
推
02/25 13:02,
6年前
, 2F
02/25 13:02, 2F
→
02/25 13:02,
6年前
, 3F
02/25 13:02, 3F
我的意思是,不管是i或numlist[index],賦值後位址都變了。這個片段numlist[index]賦
值部分被註解掉我是知道的。
→
02/25 14:54,
6年前
, 4F
02/25 14:54, 4F
→
02/25 14:54,
6年前
, 5F
02/25 14:54, 5F
我貼錯結果了,那個結果是沒有註解掉的,應該要把那行註解拿掉才對。
→
02/25 16:57,
6年前
, 6F
02/25 16:57, 6F
感謝樓上分享這篇文章
※ 編輯: jijuan (125.231.86.211), 02/25/2019 19:30:01
Python 近期熱門文章
PTT數位生活區 即時熱門文章