Python學習筆記 四 字典 當索引不好用時

2021-06-19 17:51:06 字數 3421 閱讀 3607

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....