python觀察日誌 part1 字典反向查詢

2021-10-06 05:08:24 字數 1351 閱讀 5130

學習筆記,有錯必糾

給定乙個字典d,找到鍵k對應的值v=d[k]非常容易,但是如果我們有值v,而想到鍵k該咋整呢?

因為可能存在多個鍵k對映到同乙個值v上,所以,我們可以挑選其中乙個鍵k作為返回值,或者建立乙個列表儲存所有的鍵k。

python實現:

def

reverse_lookup

(d, v)

:for k in d:

if d[k]

== v:

return k

raise lookuperror(

)d =

print

(reverse_lookup(d,2)

)

輸出:

c

構造乙個反轉字典函式,將目標字典中具有相同值的放在乙個列表中,並將其作為新字典的值新字典的鍵就是目標字典的

python實現:

def

invert_dict

(d):

inverse =

dict()

for key in d:

val = d[key]

if val not

in inverse:

inverse[val]

=[key]

else

: inverse[val]

return inverse

d =print

(invert_dict(d)

)

輸出:

我們在之前的blog裡學過,字典是通過雜湊表的方式實現的,這意味著必須是可雜湊的。

雜湊是乙個函式,接受(任意型別)的值並返回乙個整數,字典使用這些被稱為雜湊值的整數來儲存和查詢鍵值對。

這套系統當鍵不可變時,可以正常工作。但是,如果鍵像列表那樣,是可變的話,則會有不好的事情發生。例如,新建乙個鍵值對時,python將鍵進行雜湊並儲存到對應的地方,如果修改了作為鍵的列表,並再次雜湊,它會指向乙個不同的地方。在那種情況下,會導致同乙個鍵有兩個條目,或者可能找不到某個鍵。最終結果,都是導致字典無法正常工作。

因此鍵必須是可雜湊的,而類似列表這樣的可變型別是不可雜湊的。同樣,因為字典是可變的,它也不能用作鍵,但可以用作字典的值。

部落格推薦 Part 1

部落格推薦 part 1 博起 了一年多了,寫過一百多篇博文,看過的博文更是不計其數。剛剛看到乙個部落格的文章,實在把我笑到不行。然後就想推薦給大家。繼而就心血來潮,想把自己喜歡的一些部落格陸續的推薦給大家。也許,你也會喜歡呢?說明 仙仙,本名張仙!是湖南的一位autoware兄弟,跟我一起混跡內蒙...

C Handle 控制代碼 part1

本文是我學習c 沉思錄第6章的筆記 本文主要講述了handle類的概念,定義方法以及寫時複製技術。在前文 surrogate 類 的講解中我們了解到了 的實現方法.類有很多好處,但是麻煩的是每次都得進行複製.如果該類是經常使用並且member很多的話,這樣複製的消耗是十分客觀的.因此這裡就要介紹另外...

目標檢測part1

1 1卷積 googlenet inception 可看作全連線 1 增加非線性 2 特徵降維 空洞卷積 在相同的感受野的情況下,使用空洞卷積得到更大的特徵圖,獲得更密集的資料,而更大的特徵圖有助於目標檢測和目標分割任務中對小物體的識別分割效果 轉置卷積 不是真正意義上的反卷積,是一種上取樣的方式,...