11、字典
阿新 • • 發佈:2018-01-02
常用 指定 peer 對象 zip 錯誤 ict logs err
字典
基本概念
- 字典是Python中唯一的映射類型(哈希表)。
- 字典對象是可變的,但是字典的鍵必須使用不可變的對象,並且一個字典中可以使用不同類型的鍵值。
- keys()或者values()返回鍵列表或值列表。
- items()返回包含鍵值對的元值。
示例:
>>> dict={'name': 'jack', 'age' : 30, 'gender':'male' } >>> dict['name'] 'jack' >>> dict['age'] 30 >>> dict['gender'] 'male' >>> dict.keys() ['gender', 'age', 'name'] >>> dict.values() ['male', 30, 'jack'] >>> dict.items() [('gender', 'male'), ('age', 30), ('name', 'jack')]
創建字典
dict = {}
使用工廠方法dict()
fdict=dict(['x',1], ['y',2])
內建方法:fromkeys(),字典中的元素具有相同的值,默認為None
ddict={}.fromkeys(('x','y'), -1) #輸出結果:{'x': -1, 'y': -1}
訪問字典中的值
- 直接使用key訪問:key不存在會報錯,可以使用has_key()或者in和not in判斷,但是has_key方法即將廢棄。
- 循環遍歷:
for key in dict1.keys():
- 使用叠代器:
for key in dict1:
更新和刪除
- 直接用鍵值訪問更新;內建的
update()
方法可以將整個字典的內容拷貝到另一個字典中。 del dict1[‘a‘]
:刪除字典中鍵值為a的元素dict1.pop(‘a‘)
:刪除並且返回鍵為‘a‘的元素dict1.clear()
:刪除字典所有元素del dict1
:刪除整個字典
字典相關的內建函數
type(), str(), cmp()
(cmp很少用於字典的比較,比較依次是字典的大小、鍵、值)
工廠函數dict()
* 例如:
dict(zip(('x','y'),(1,2))) dict(x=1,y=2) #輸出結果:{'x': 1, 'y': 2}
- 使用字典生成字典比用copy慢,因此這種情況下推薦使用
copy()
常用函數
len()
:返回序列的大小hash()
: 用於判斷某個對象是否可以做一個字典的鍵,非哈希類型報TypeError錯誤dict.clear()
: 刪除字典中的所有元素dict.fromkeys(seq, val=None)
: 以seq中的元素為鍵創建並返回一個字典,val為制定默認值dict.get(key, default=None)
: 返回key的value,如果該鍵不存在返回default指定的值dict.has_key(key)
:判斷字典中是否存在key,建議使用in或not in代替dict.items()
:返回健值對元組的列表dict.keys()
:返回字典中鍵的列表dict.iter*()
: iteritems(), iterkeys(), itervalues()返回叠代子而不是列表dict.pop(key[,default])
:同get(),區別是若key存在,刪除並返回dict[key],若不存在則返回default,未指定值,拋出KeyError異常dict.setdefault(key, default=None)
:同set(),若key存在則返回其value,若key不存在,則dict[key]=defaultdict.update(dict2)
:將dict2中的鍵值對添加到字典dict中,如果有重復則覆蓋,原字典不存在的條目則添加進來。dict.values()
:返回字典中所有值的列表
11、字典