可變的,無序的,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...