Pyhon中的可雜湊的值和不可雜湊的值

2021-10-03 07:23:18 字數 855 閱讀 4327

python中可雜湊的值(hashable)和不可雜湊的值(unhashable)

可雜湊的值(hashable):可雜湊的資料型別,即***不變的資料結構***(數字、字母、字串str、元祖tuple、物件objects)

不可雜湊的值(unhashable):不可雜湊的資料型別,即***可變的資料結構***(列表list、字典dict、集合set)

可雜湊的值有乙個特點:不同值不同址,同值同址

不可雜湊的值有乙個特點:不同值同址,同值不同址

總結:如何判斷可變不可變?

改個值,id不變的為可變資料型別,則不可雜湊

改個值,id變換的為不可變資料型別,則可雜湊

雜湊概念:

hash,一般稱作雜湊,也有直接音譯為雜湊的;就是將任意長度的輸入(又稱作為預對映),通過雜湊演算法,變換成固定長度的輸出,該輸出就是雜湊值。

這種轉換是一種壓縮對映,也就是,雜湊值的空間通常遠小於輸入的值的空間,不同的輸入可能會雜湊成相同的輸出,所以不可能從雜湊值來確定唯一的輸入值。

簡單來說,就是一種將任意長度的訊息壓縮到某一固定長度的訊息摘要的函式。

雜湊演算法:

雜湊演算法是用來解決資料與資料之間對應關係的一種演算法。它的初衷是用來加速資料訪問。

計算機領域內的大多數查詢演算法都與儲存資料的規模呈正相關,用於衡量查詢演算法效率的量稱為平均查詢長度,一般情況下,比較優秀的查詢演算法的平均查詢長度也不會短於資料規模以2為底的對數。

python中的可雜湊和不可改變性

1.可雜湊 hashable 和不可改變性 immutable 如果乙個物件在自己的生命週期中有一雜湊值 hash value 是不可改變的,那麼它就是可雜湊的 hashable 的,因為這些資料結構內建了雜湊值,每個可雜湊的物件都內建了 hash 方法,所以可雜湊的物件可以通過雜湊值進行對比,也可...

可修改的雜湊

如果在乙個字串中要找是否存在長度為n的回文串 可以manachar 但是更好打的方式是直接hash 可是,這個hash需要算o len 個長度為n的字串的hash值 如果暴力,已經到了o n 2 的級別 那麼考慮一下,如何簡化。計算hash的o n 是不能省的 那麼不難想到利用前面串的結果來巧算後面...

Linux中的可重入函式和不可重入函式

標籤 linux 多執行緒處理器 行業資料 全域性變數 2013 04 18 10 25 3484人閱讀 收藏舉報 分類 unix環境高階程式設計 55 作者同類文章 x可重入函式 可重入函式 即可以被中斷的函式 可以被乙個以上的任務呼叫,而不擔心資料破壞。可重入函式在任何時候都可以被中斷,而一段時...