4.1 字典的使用
類似於c++ 中的map.
4.2 建立和使用字典
字典可以通過下面的方式建立
>>> phonebook =
4,2,1 dict 函式
可以同dict函式,通過其他對映(比如其他字典) 或者(鍵,值)這樣的序列對建立字典
>>> items=[('name','gumby'),('age',42)]
>>> d = dict (items)
>>> d
dict函式也可以通過關鍵字引數來建立字典
>>> d = dict(name = 'gumby',age=42)
>>> d
4.2.2 字典的基本操作
字典的基本操作在很多方面與序列(sequence)類似:
len(d) 返回d中項(鍵-值對)的數量
d[k] 返回關聯到鍵k上的值
d[k]=v 將值v關聯到鍵k上
del[k] 刪除鍵為k的項
k in d 檢查的中是否含有鍵為k的項 .
儘管字典和列表頁有很多特性相同,但也有下面以下重要區別
鍵型別:不一定整數, 浮點型,字串,元組都有可能
自動新增:即使那個鍵起初在字典中並不存在,也可以為它分配乙個值,這樣字典就會建立乙個新的項 (所以說 python 中的字典基本就是c++ 中的map)
成員資格 :key in d 查詢的是鍵,而不是值.
字典示例 : 用字典巢狀字典建立簡單資料庫:
>>> family= ,
'xu':
}
查詢: family['liang']['add']
4.2.3 字典的格式化字串
>>> phonebook
>>> "cecil's phone number is %(cecil)s."%phonebook
"cecil's phone number is 3258."
4.2.4字典方法
1 clear()
清空字典中的所有元素
2 copy
返回具有相同鍵-值對的新字典
>>> phonebook
>>> y=phonebook.copy()
>>> y
此處為淺複製, 當原始字典修改值(不是替換)時,副本也受影響 . 未解決這個問題,可以使用深複製: deepcopy
>>> e={}
>>> e
{}>>> e['name']=['a','b']
>>> e
>>> c=e.copy()
>>> dc=deepcopy(e)
>>> c
>>> dc
>>> e
3 fromkeys
使用給定的鍵家裡新的字典, 每個鍵對應的值為none .
>>> dict.fromkeys(['name','age'])
也可以使用自己的預設值
dict.fromkeys(['name','age'],'(unknow)')
4 get
是一種更寬鬆的訪問字典的方法, 此種方法訪問字典中不存在的的項時不會出錯
>>> d={}
>>> print d['name']
traceback (most recent call last):
file "", line 1, in print d['name']
keyerror: 'name'
>>> print d.get('name')
none
這裡也可以返回預設值
>>> print d.get('name','n/a')
n/a
5 has_key
檢查字典中是否含有給出的鍵
>>> d.has_key('name')
false
6 items和iteritems
items 將字典所有項以列表方式返回
>>> x
>>> x.items()
[('beth', '9101'), ('alice', '2341'), ('cecil', '3258')]
iteritems 返回乙個迭代器 (具體參照python學習筆記(九))
7 keys和 iterkeys
keys將所有字典中的鍵以列表方式返回, iterkeys返回迭代器
8pop
pop 用來獲得應用於給定鍵的值,然後將這個鍵-值從字典中刪除
>>> x
>>> x.items()
[('beth', '9101'), ('alice', '2341'), ('cecil', '3258')]
>>> x.pop('beth')
'9101'
9 popitem
彈出隨機的項. 字典中不存在有關順序的概念(與map不同) ,若想乙個接乙個的移除並處理項,這個方法將非常有用.
>>> y
>>> y.popitem()
('beth', '9102')
>>> y
10 setdefault
某種程度上類似於get, 就是能夠獲得與給定鍵相關聯的值, 除此之外,還能在字典不含相應鍵值的情況下設定相應鍵值
>>> y.setdefault('l','n/a')
'n/a'
11 update
update可以用乙個字典更新另乙個字典
>>> x
>>> y
>>> x.update(y)
>>> x
12 values 和itervalues
values方法以列表的形式返回字典中的值(itervalues返回值的迭代器)
>>> y
>>> y.values()
['2341', 'n/a', '3258']
python學習(四) 字典 當索引不好用時
第四章 字典 當索引不好用時 4.1 字典的使用 字典的適用場景 表示乙個遊戲棋盤的狀態,每個鍵都是由座標值組成的元組 儲存檔案修改時間,用檔名作為鍵 4.2 建立和使用字典 如下的 鍵 值 對就是字典 phonebook phonebook alice 2341 4.2.1 dict函式 可以用d...
python學習筆記(四)字典
個人筆記,僅供參考 字典通過鍵值對來儲存資料,經常用來儲存有關聯的幾組資料。在需要處理較多資料時用的很頻繁 字典通過以下方式建立 phonebook 整個字典有大括號括起,一對鍵值對使用冒號連線,各個鍵值對之間用逗號分隔。可使用dict從其他對映 如其他字典 或鍵值對序列建立字典 items nam...
Python學習四 字典
在python中,字典是一系列鍵 值對。每個鍵都與乙個值相關聯,你可以使用鍵來訪問與之相關的值。事實上,可將任何python物件用作字典中的值,例如數字 字串 列表 甚至是字典。例項 alien print alien age 輸出17 user 0 for key,value in user 0....