python資料結構總結 字典

2021-08-09 01:39:49 字數 2965 閱讀 2885

可變的,無序的,key不重複

key 可雜湊的資料型別(str, bytes and 數值型別)

value 無要求

初始化字典

d = dict()

d = {}

d =

dict(**kwargs) # 使用name=value初始化乙個字典

dict(iterable, **kwargs) # 使用可迭代物件和name=value對構造字典

d = dict((('1', a), (2, 'b'))) # 不推薦使用

d = dict(([1, 'a'], [2, 'b'])) # 不推薦使用

類方法 dict.fromkeys(iterable, value) 處理找不到鍵的乙個選擇

d = dict.fromkeys(range(5))

d = dict.fromkeys(range(5), 0)

訪問字典

dict[key]           不存在,返回keyerror

dict.get(key[, default]) 不存在,返回def; 沒有def,返回none

dict.setdefault(key[, default]) 不存在,新增kv; 沒有def, v=none

修改字典

dict[key] = value

dict.update([other]) -> none 使用另乙個字典的kv更新字典

刪除字典

dict.pop(key[, default])    不存在返回def;沒有def,返回keyerror

dict.popitem() 返回任意item,empty dict 返回keyerror異常

dict.clear()

defaultdict 處理找不到鍵的乙個選擇

collections.defaultdict([default_factory[, ...]])

default_factory 預設是none,它提供乙個初始化函式。

當key不存在時,會呼叫這個工廠函式來生成key對應的value

dd = defaultdict(function)

dd['foo'] # key 'foo' 不存在時,dd呼叫function函式生成『foo』對應的value

# 注意呼叫,即例項化

from collections import defaultdict

d1 = {}

d2 = defaultdict(list)

for k in 'abced':

for v in range(5):

if k not in d1.keys():

d1[k] =

print(d1)

for k in 'mnopq':

for v in range(3):

print(d2)

ordereddict 對順序有要求時使用

collections.ordereddict([items])        # 有序字典,順序指錄入順序

from collections import ordereddict

import random

print(d)

keys = list(d.keys())

random.shuffle(keys)

print(keys)

od = ordereddict()

for key in keys:

od[key] = d[key]

print(od)

print(od.keys())

from colletions import ordereddict

od = ordereddict()

od[1] = 'a'

od[3] = 'c'

od[2] = 'b'

od[4] = 'd'

od[6] = 'f'

print(od)

print(od.keys())

有序字典可以記錄元素插入的順序,列印的時候也是按照這個順序輸出列印

3.6版本的python的字典就是記錄key插入的順序

字典練習

數字統計

使用者輸入乙個數字

列印每一位數字及其重複的次數

數字重複統計

隨機產生100個整數

數字的範圍[-1000, 1000]

公升序輸出所有不同的數字及其重複的次數

import random

from collections import ordereddict

num_list =

od = ordereddict()

# num_list = [ random.randint(-1000, 1000) for _ in range(100)]

for _ in range(100):

num_list.sort()

# print(num_list)

for k in num_list:

if k not in od.keys():

od.setdefault(k, 0)

od[k] += 1

else:

od[k] += 1

for k, v in od.items():

print('{}: {}'.format(k, v))

字串重複統計

字元表『abcd...z'

隨機挑選2個字母組成字串,共挑選100個

降序輸出所有不同的字串及重複的次數

Python資料結構 字典

d1 建立空字典,沒有任何元素的大括號即為字典 d2 dict 建立空字典 d3 鍵與至之間用冒號 分開,鍵值對之間用逗號,分開 d4 dict one 1,two 2,three 3 注意此時key不要加引號 print type d1 print type d2 print d3 print d...

python資料結構 字典

字典的索引稱為 鍵 鍵及其關聯的值稱為 鍵 值 對。字典的索引可以使用許多不同資料型別,不只是整數。在 中,字典輸入時帶花括號 和列表不同,字典中的表項是不排序的,但可以用任意值作為鍵。keys values 和items 返回類似列表的值,分別對應於字典的鍵 值和鍵 值對。items 方法返回的d...

python 資料結構 字典

理解字典的最佳方式是把它看做無序的鍵 值對 key value 對 集合,鍵必須是互不相同的 在同乙個字典之內 一對大括號建立乙個空的字典 tel tel guido 4127 tel tel jack 4098 del tel sape tel irv 4127 tel list tel.keys...