Python中id a ,3,True, scd 1 id 3 ,為啥是true?

時間 2021-06-01 16:20:04

1樓:之乎者也

這個問題轉化為簡單直觀的說法就是列表中的3和普通的3的id為啥是一樣的。

首先需要知道Python採用的是引用計數,舉個栗子。

a=3和b=3

這兩個的3其實是一樣的,可以理解為這個3在記憶體中放著,然後ab都把它拿過來用。

這就是python的引用機制的獨特的地方了,換做C語言這兩個肯定是不一樣的了。

另外可以了解一下記憶體池的概念,Python中小範圍的數字址是已經分配好的,用的時候直接拿來用就好了,所以他們的id總是相同的,比較大的數就不是了,每次的id會變化。

2樓:睡到人間煮飯時

這個要拆分開來解答,['a',3,True,'scd'][1] 中 [1] 是對前面列表['a',3,True,'scd']做乙個切片,取列表中下標為1的元素,下標是從0開始,0取a,那麼1就取3,所以id(['a',3,True,'scd'][1])==id(3)

3樓:中山阿煒

print(id(['a',3,True,'scd'][1]))print(id(3))

s = 3

t = 3

print(id(s))

print(id(t))

學習了,這4個print記憶體位址都一樣

4樓:初創者

這個問題應該是因為 ['a',3,True,'scd'] 陣列的後面跟 [1] 代表陣列中的第二個數也就是3(陣列是從0開始計數),所以左式就表示3的位址,因此結果是true。

id(object) 函式返回的是物件在記憶體中的位址,變數的id隨值改變而改變。望採納。

在Python3中builtins模組與當前正在執行的主模組是什麼關係?

coder dh C Users LENOVO In globals Out get ipython exit quit i ii iii i1 globals module dict 6 dict,i7 globals dict 在第 1步中沒注釋的那行,我們可以看到 builtins 這可以解釋...

Python3 str在記憶體中的儲存方式?

Coldwings 這種問題就應該去看原始碼。就算不看原始碼,看文件啊 對於Py3.5而言 enum PyUnicode Kind Return pointers to the canonical representation cast to unsigned char,Py UCS2,or Py ...

Python3中子執行緒呼叫input方法,把其他執行緒都阻塞了怎麼辦?

雖然是多執行緒,但是shell資源只有乙個,你換一種輸出方式試試你的input 卡住了accept的print,只能是輸入和輸出兩個成對出現 想不成對可以這樣,10個一卡.your code from queque import Queueq Queque 10 your code defclien...