走進Python世界(五)資料類型 5. 序列類型-字典(Dictionary)

來源:互聯網
上載者:User

標籤:

什麼是字典

字典是python中唯一的映射類型(雜湊表)

字典是無序的

字典對象是可變的,但是字典的鍵必須使用不可變的對象,並且一個字典中可以使用不同的類型索引值

keys() 或者values()返回鍵列表或者值列表

items()返回索引值對的元組


建立字典一般方法

常用的方式就是直接使用{}

一般文法如下:

dict = {‘Alice‘: ‘2341‘, ‘Beth‘: ‘9102‘, ‘Cecil‘: ‘3258‘}
Factory 方法

使用Factory 方法dict來建立字典

一般文法如下:

fdict=dict([‘x‘,1],[‘y‘,2])
內建方法

使用內建方法fromkeys來建立字典嗎,字典元素中的元素巨有相同的值,預設為none

一般文法如下:

ddict={}.fromkeys((‘x‘,‘y‘),-1)
訪問字典使用key來訪問

使用key來訪問字典的內容

一般文法如下:

dict = {‘Alice‘: ‘2341‘, ‘Beth‘: ‘9102‘, ‘Cecil‘: ‘3258‘}dict[Alice]
迴圈遍曆

如:

dict = {‘Alice‘: ‘2341‘, ‘Beth‘: ‘9102‘, ‘Cecil‘: ‘3258‘}for key in dict.keys()  print dict[k]
使用迭代器
dict = {‘Alice‘: ‘2341‘, ‘Beth‘: ‘9102‘, ‘Cecil‘: ‘3258‘}for key in dict  print dict[k]

注意如果要訪問一個不存在的鍵,這會得到一個錯誤,如下所示:

dict[‘Zara‘]:Traceback (most recent call last):  File "test.py", line 4, in <module>    print "dict[‘Alice‘]: ", dict[‘Alice‘];KeyError: ‘Alice‘
字典的更新和刪除更新字典:

可以通過添加一個新條目或項目(即一個鍵 - 值對),修改現有條目或刪除。作為簡單的例子,如所示在現有條目更新字詞:

#!/usr/bin/pythondict = {‘Name‘: ‘Zara‘, ‘Age‘: 7, ‘Class‘: ‘First‘};# update existing entrydict[‘Age‘] = 8; # Add new entrydict[‘School‘] = "DPS School";
刪除字典元素:

可以刪除單個字典元素或清除字典中的全部內容。也可以刪除整個字典在一個單一的操作。

要刪除整個字典,只要用del語句。下面是一個簡單的例子:

#!/usr/bin/pythondict = {‘Name‘: ‘Zara‘, ‘Age‘: 7, ‘Class‘: ‘First‘};del dict[‘Name‘]; # remove entry with key ‘Name‘dict.clear();     # remove all entries in dictdict.pop(‘Name‘);     # remove entry with key Name and return its valuedel dict ;        # delete entire dictionaryprint "dict[‘Age‘]: ", dict[‘Age‘];print "dict[‘School‘]: ", dict[‘School‘];

這將產生以下結果。注意引發異常,這是因為經過del dict刪除,字典已經不存在了:

dict[‘Age‘]:Traceback (most recent call last):  File "test.py", line 8, in <module>    print "dict[‘Age‘]: ", dict[‘Age‘];TypeError: ‘type‘ object is unsubscriptable
字典的鍵的屬性:

字典值沒有限制。它們可以是任意Python對象,無論是標準的對象或使用者定義物件。但是作為鍵,是不可以這樣的。

要記住字典中的鍵的兩個要點:

(一)不準一個鍵對應多個條目。這意味著不能有重複的鍵。當有重複的鍵,在分配過程中以最後分配的為準。下面是一個簡單的例子:

#!/usr/bin/pythondict = {‘Name‘: ‘Zara‘, ‘Age‘: 7, ‘Name‘: ‘Manni‘};print "dict[‘Name‘]: ", dict[‘Name‘];

當執行上面的代碼,產生以下結果:

dict[‘Name‘]:  Manni

(二)鍵的值字必須是不可變的。這意味著可以使用字串,數字或元組作為字典的鍵,但像[‘key‘]是不允許的。下面是一個簡單的例子:

#!/usr/bin/pythondict = {[‘Name‘]: ‘Zara‘, ‘Age‘: 7};print "dict[‘Name‘]: ", dict[‘Name‘];

當執行上面的代碼,產生以下結果:

Traceback (most recent call last):  File "test.py", line 3, in <module>    dict = {[‘Name‘]: ‘Zara‘, ‘Age‘: 7};TypeError: list objects are unhashable


內建字典功能和方法:

Python中包括以下字典功能:

SN 方法及描述
1 cmp(dict1, dict2)
比較兩個字典的元素
2 len(dict)
字典的長度。這將等同於在字典中的項數
3 str(dict)
產生字典裡可列印字串表示形式
4 type(variable)
返回傳遞變數的類型。如果傳遞變數是字典,那麼它將返回一個字典類型

Python中包括以下字典方法

SN 方法及描述
1 dict.clear()
刪除字典dict中的所有元素
2 dict.copy()
返回字典dict的淺表副本
3 dict.fromkeys()
建立一個新的字典,設定鍵為seq 和值為value
4 dict.get(key, default=None)
對於鍵key,返回鍵,如果不是在字典的值或預設
5 dict.has_key(key)
如果在字典dict中存在鍵key,則返回true,否則返回 false
6 dict.items()
返回字典的(鍵,值)元組對的列表
7 dict.keys()
返回字典的鍵的列表
8 dict.setdefault(key, default=None)
類似get(),但會設定dict[key]=default如果key不是已經在於字典中
9 dict.update(dict2)
增加字典dict2的索引值對到字典中
10 dict.values()
返回字典dict的值列表


走進Python世界(五)資料類型 5. 序列類型-字典(Dictionary)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.