可變型別與不可變型別總結
1、不可變型別:是直接把值賦給一個變數(a=1),引用(記憶體中的地址)是一直不變的,除了重新給a賦值才會改變引用。
2、可變型別:
(1)可變型別的資料變化,是通過方法來實現的(不會改變地址)
(2)如果給一個可變型別的變數,賦值了一個新的資料,引用會修改(會改變地址)
- 變數 不再 對之前的資料引用
- 變數 改為 對新賦值的資料引用
注意:字典的key 只能使用不可變型別的資料
雜湊(hash)
- python中內建有一個名字叫做hash(0)的函式
1.接收一個 不可變型別
2.返回 結果是一個 整數
- 雜湊 是一種 演算法,其作用就是提取資料的 特徵碼(指紋)
1.相同的內容 得到 相同的結果
2.不同的內容 得到 不同的結果
- 在python中,設定字典的 鍵值對 時,會首先對 key 進行 hash 已決定如何在記憶體中儲存字典的資料 ,以方便 後續 對字典的操作:增、刪、改、查
1.鍵值對的 key 必須是不可變型別資料
2.鍵值對的 value 可以是任意型別的資料
相關推薦
可變型別與不可變型別總結
1、不可變型別:是直接把值賦給一個變數(a=1),引用(記憶體中的地址)是一直不變的,除了重新給a賦值才會改變引用。 2、可變型別: (1)可變型別的資料變化,是通過方法來實現的(不會改變地址) (2)如果給一個可變型別的變數,賦值了一個新的資料,引用會修改(會改變地址)
Python中可變型別與不可變型別資料在記憶體中的引用
在Python中主要有兩種資料型別, 一種是可變資料型別, 另一種是不可變資料型別 不可變資料型別 數字型: int, float, complex, bool, long 字元型: str 元 祖: tuple 可變資料型別 列表:
python中可變資料型別與不可變資料型別小結
一、python中資料型別(紅色為可變型別) 1、字串 str 2、布林型別 bool 3、整數 int 4、浮點數 float 5、數字 (int和float)6、列表&nb
Python學習【第4篇】:Python之可變資料型別與不可變資料型別 可變資料型別和不可變資料型別
可變資料型別和不可變資料型別 1.可變資料型別:在id不變的情況下,value可改變(列表和字典是可變型別,但是字典中的key值必須是不可變型別) 2.不可變資料型別:value改變,id也跟著改變。
【python基礎】可變型別與不可變型別
從上面的文章可以總結出Python中變數名和物件是分離的,通過“=”給變數賦值時,實際上引用變數指向一個物件,而這個物件則是對應記憶體中儲存的一塊資料,取消引用時,Python會回收記憶體。 In [1]: a=100 這個語句執行的意思是:設定記憶體中一塊區域儲存
可變物件與不可變物件
在之前的一篇文章“python中的賦值 值傳遞?”中,因為在呼叫方法時與方法內部,輸出id是相同,所以不能理解官方的那句話 Remember that arguments are passed by assignment in Python. 要記住,Pyth
scala可變var與不可變val的理解
我們定義變數的時候分為var可變變數和val不可變變數。 我們使用容器的時候也分為可變容器和不可變容器。 List和Tuple本身就是不可變的,set和map分為可變和不可變的,預設為不可變。 我們看這樣一個例子
python筆記-可變物件與不可變物件
python中,萬物皆物件。所有的物件可以分為可變物件與不可變物件兩類。當變數引用不可變物件時,使用該變數的任何操作,都會建立新物件,而不會改變引用的物件。與此相反,變數引用可變物件時,或者可能建立新的物件,或者改變被引用的物件本身,這取決於進
Scala可變陣列與不可變陣列的區別、可變集合與不可變集合的區別、Array與ArrayBuffer的區別、List與ListBuffer的區別
不可變陣列與可變陣列的區別 Array與ArrayBuffer的區別 Array為不可變陣列,ArrayBuffer為可變陣列,兩則的區別比較好理解: 不可變指的是長度不可變。Array不能新增或刪除元素,沒有+=和-=方法;而ArrayBuffer可以新增或刪除元素。 注意點:Ar
python 可變變數與不可變變數區分
轉:https://blog.csdn.net/god_wen/article/details/78423621 不可變變數 我們可以通過下面的例子來感受上面的話 <span style="color:#000000"><code>5245405
Java 可變物件與不可變物件
可變物件與不可變物件 概念1 不可變物件(Immutable Objects)即物件一旦被建立它的狀態(物件的資料,也即物件屬性值)就不能改變,任何對它的改變都應該產生一個新的物件 String str = "a" ; str = "b" ; // 兩
Scala 可變陣列與不可變陣列
(*)陣列 java中的集合都是可變集合 在scala中集合分為可變集合和不可變集合 不可變陣列預設可以使用 長度不可以改變,內容可以改變 可變陣列必須引用:import scala.collection.mutable.ArrayBuffer
可變序列與不可變序列
直接 空間 引用 bsp 不可 nbsp 無法 可變 一個 可變類型: 比如列表:列表名(或稱為列表引用)指向堆空間中的一個列表。列表引用當中存儲的內容為地址,可以指向堆內存中的具體對象. 一方面,該列表可以保證在地址不
一步步學spark之一scala函式程式設計中序列,可變列表與不可變列表3.2
一步步學spark之一scala函式程式設計中序列,可變列表與不可變列表 定義List集合 head就是去列表中第一個元素 tail就是除了第一個元素以外的其他元素列表 另一種定義list方法 把新的數加入到list中
Python中可變物件與不可變物件
什麼是可變/不可變物件 不可變物件,該物件所指向的記憶體中的值不能被改變。當改變某個變數時候,由於其所指的值不能被改變,相當於把原來的值複製一份後再改變,這會開闢一個新的地址,變數再指向這個新的地址。 可變物件,該物件所指向的記憶體中的值可以被改變。變數(準確的說是引
可變類與不可變類的區別
所謂不可變類,是指當建立了這個類的例項後,就不允許修改它的屬性值。在JDK的基本類庫中,所有基本型別的包裝類,如Integer和Long類,都是不可變類,java.lang.String也是不可變類。以下程式碼建立了一個String物件和Integer物件,它們的值分別為“
OC學習----可變陣列與不可變陣列
NSArray / NSMutableArray 在OC中,我們用 NSArray 類和 NSMutableArray 類來表示陣列.其中, NSArray 類是 NSMutableArray 類的父類.在OC中,我們的陣列是有序的 物件 的集合,即我們的陣列
關於Python中的可變物件與不可變物件的區別
Python中的可變物件與不可變物件什麼是可變物件/不可變物件:可變物件:物件存放在地址中的值不會被改變(所謂的改變是建立了一塊新的地址並把新的物件的值放在新地址中原來的物件並沒有發生變化)不可變物件:物件存放在地址中的值會原地改變int str float tuple 都屬
java中可變物件與不可變物件
可變物件(mutable Objects),不可變物件(Immutable ojbects),那麼他們有什麼區別呢? 不可變物件意味著這個物件是final的,物件中所有的公共屬性是final的。同時說明這個物件是執行緒安全的,這意味著他們可以在多執行緒中使用,而不需要使用s
關於可變物件與不可變物件,變數
上面我們講了,str是不變物件,而list是可變物件。對於可變物件,比如list,對list進行操作,list內部的內容是會變化的,比如:>>> a = ['c', 'b', 'a'] >>> a.sort() >>> a