python dict的一些簡單用法

2021-07-25 08:51:23 字數 935 閱讀 5938

我以為我dict用的很熟了,但是真正再去用的時候發現還是底子太薄,太多地方容易出錯了;

d = dict()

# or 更簡單

d = {}

這樣建立了乙個新的dict,不包含任何key,value

if d.han_key('key'):

#do something...

乙個例子:

比如說我有乙個list,裡面有重複的元素,我要統計所有元素出現的次數

list = [1,2,2,3,4,2,3,3]

d = dict()

forelement

in list:

if d.has_key(element):

d[element] += 1

else:

d[element] = 1

for k,v in dict.iteritems():

print

'%s:%s' % (k, v)

其中iteritems()返回了乙個dictionary-itemiterator object

相比items()返回的就是乙個list, list的每個元素為乙個tuple, 如:

[('a', 1), ('b', 2)]
我仔細想了一下,dict排序有意義嗎?我意思是我致力於去實現我把所有的元素排完序再放回去是有序的,這個本身是不現實的,因為dict的建立和維護並不是按照連續的記憶體,而是雜湊的。

所以我們只能得到乙個有序的list,無法得到乙個有序的dict

所以如果知道排序的思想,用items()抽出來,再對list排序就好了。

python dict中常用的一些函式

dic1 dic2 dic1.update dic2 update dict dic1呼叫update傳入dic2,如果dic2中的內容在dic1中不存在,那麼直接加入新的價值對到dic1中 如果dic2中的鍵在dic1中已經出現了,那麼就將dic2中鍵所對應的值去覆蓋dic1中的鍵的值 items...

一些簡單的演算法

氣泡排序,比如你有五個數 3 4 2 1 0 其原理就是用沒個數和 其他數進行比較 下面我們來書寫每一輪的數值 第一輪 3 4 2 得出佇列 2 4 3 1 0 2 1 0 得出佇列 1 4 3 2 0 得出佇列 0 4 3 2 1 第二輪 4 3 得出佇列 0 3 4 2 1 3 2 1 得出佇列...

一些簡單的想法

我的關於pat甲級考試的總結的訪問量是其他文章訪問量的總和還要多。一是我這裡確實沒什麼乾貨 二是我這裡的內容可搜尋性不強,本身標題無傳播性 三是感覺大家對pat考試蠻重視的。但是,至少現在以我的親身經歷來講,如果只是考個乙級的話,企業應該是不看重的。其實去年十二月份的考試考得一般,今年三月份的成績反...