Python 這10個字典操作你必須知道

2021-09-20 09:29:52 字數 1880 閱讀 7784

嗯,乾貨必須收藏

使用in關鍵字判斷key是否存在字典中

d = 

key = "gender"

if key in d:

pass

不要使用key in d.keys(), 這是一種畫蛇添足的操作,因為d.keys()會返回乙個新的列表物件,導致記憶體最大。

>>> x = 

>>> y =

>>>

返回新的字典物件,x和y都不會改變,這是使用了pep448範化解包操作, 如果 x 和 y 有相同的key, 那麼y會覆蓋x。 如果使用字典的update方法,將修改原來的物件,例如:

>>> y.update(x)

>>> y

z = 

>>> for key, value in z.items():

print(key, value)

b 2c 4

a 1

也可以直接對字典z進行迭代,每次迭代返回的是key,前面那種操作 z.items()會返回乙個新的物件。

>>> for key in z:

print(key, z[key])

b 2c 4

a 1

使用字典推導式快速構建字典物件

>>>

字典本質上是個無序的容器物件(其實python3.6開始支援有序,不過這個有序是指按照key的新增順序),如果我們要對字典的 key 或者 value 排序,一般是將其轉換為list,再按照key或者value排序。

>>> d = 

# 按照value排序

>>> sorted(d.items(), key=operator.itemgetter(1))

[('b', 0), ('a', 1), ('c', 3), ('f', 6)]

# 按照key排序

>>> sorted(d.items(), key=operator.itemgetter(0))

[('a', 1), ('b', 0), ('c', 3), ('f', 6)]

>>>

統計列表中每個字母出現的次數

>>> chars = ['a', 'b','c','a','d','c']

>>> data = {}

>>> for c in chars:

...    if c in data:

...        data[c]+=1

...    else:

...        data[c] = 0

...>>> data

可以使用 collections.defaultdict 通過工廠函式提供初始化預設值

chars = ['a', 'b','c','a','d','c']

dd = defaultdict(int)

for c in chars:

dd[c] += 1

>>>defaultdict(, )

defaultdict 是 dict 的子類,繼承了 dict 的所有特性, 如果想要初始值為1 怎麼辦? 可以用lambda函式來指定

dd = defaultdict(lambda: 1)

for c in chars:

dd[c] += 1

print(dd)

>>> defaultdict(at 0x01226b28>, )

Python這10個字典操作你必須知道

實際上,大資料的應用程式需要處理大量資訊,並且在出自彈性的考慮將資料拷貝到多個部位時,資訊的規模變得越來越大。可是,大資料的最關鍵屬性並非在於它的規模,而在於它將大作業切分成很多小作業的能力,它才能將解決一兩個任務的資源細化到好幾個位置變成並行處理。在將大規模和分布式架構組合合為一體時,人們就能發覺...

python合併2個字典

2種方式,update 和items 方式 in 14 a out 14 in 15 c in 16 a.update c in 17 a out 17 in 18 a in 19 a out 19 in 20 c out 20 in 21 a.items c.items out 21 a 1 d ...

你得小心BYOD這10個陷阱!

byod使員工可以在工作中使用他們自己個人的手機和膝上型電腦 這已經很快得到人們的接受。下面就是當你考慮如何實現自己的byod計畫時應該避免的10個錯誤。1 抵制byod 在乙個byod錯誤的榜單中這一點似乎是顯而易見的,但是抵制byod正在成為乙個越來越站不住腳的策略。隨著計算裝置變得越來越個性化...