標籤:python、字典
字典dict
字典使用鍵-值(key-value)儲存,在一個字典中鍵必須相互不同。
字典具有很快的速度,因為使用了key-value儲存方式,在放進去的時候會根據key算出vlaue的存放位置,這樣根據key可以直接定位到value。
序列是以連續的整數為索引,與字典不同的是,字典以關鍵字為索引,關鍵字可以是任意不可變對象(不可修改),通常是字串或數值,這也保證了value的儲存位置不會變化。
由於一個key只能對應一個value,所以,多次對一個key放入value,後面的值會把前面的值衝掉。
需要佔用大量的記憶體,記憶體浪費多。
一、定義字典
>>> name={‘zhangsan‘:90,‘lisi‘:80,‘wangwu‘:70}
使用大括弧括起來,鍵和值用冒號分隔,多個鍵-值用逗號分隔,一個鍵只能對應一個值。
二、基本操作
#返回所有索引值
>>> name.items()[(‘lisi‘, 80), (‘zhangsan‘, 90), (‘wangwu‘, 70)]
#返回所有鍵
>>> name.keys()[‘lisi‘, ‘zhangsan‘, ‘wangwu‘]
#返回所有值
>>> name.values()[80, 90, 70]
注意:以上返回的結果都是以列表的形式
#添加索引值
>>> name[‘zhaoliu‘]=60>>> name{‘lisi‘: 80, ‘zhaoliu‘: 60, ‘zhangsan‘: 90, ‘wangwu‘: 70}
#擷取單個鍵的值
>>> name[‘zhangsan‘]90
注意:如果這個鍵不存在就會輸出 KeyError 錯誤
>>> name.get(‘zhangsan‘)90
注意:如果這個鍵不存在,輸出結果為空白。
#刪除指定指定的索引值
>>> name.pop(‘zhangsan‘)90>>> name{‘lisi‘: 80, ‘zhaoliu‘: 60, ‘wangwu‘: 70}
#刪除第一個索引值
>>> name.popitem()(‘lisi‘, 80)>>> name{‘zhaoliu‘: 60, ‘wangwu‘: 70}
#把其他字典的索引值添加到本字典中
>>> name{‘zhaoliu‘: 60, ‘wangwu‘: 70}>>> name1={‘jerry‘:88,‘mike‘:66}>>> name.update(name1)>>> name{‘mike‘: 66, ‘zhaoliu‘: 60, ‘jerry‘: 88, ‘wangwu‘: 70}
#拷貝為一個新的字典
>>> name2=name.copy()>>> name2{‘mike‘: 66, ‘zhaoliu‘: 60, ‘jerry‘: 88, ‘wangwu‘: 70}
注意:name2不會隨著name變化
>>> name3=name>>> name3{‘mike‘: 66, ‘zhaoliu‘: 60, ‘jerry‘: 88, ‘wangwu‘: 70}
注意:name3會隨著name進行變化
#判斷字典中是否有這個鍵
>>> name.has_key(‘wangwu‘)True>>> name.has_key(‘fjc‘)False
#如果字典中有這個鍵,就返回對應的值,沒有則添加這個鍵到字典中,值預設為None
>>> name{‘mike‘: 66, ‘zhaoliu‘: 60, ‘jerry‘: 88, ‘wangwu‘: 70}>>> name.setdefault(‘mike‘)66>>> name.setdefault(‘mike‘,66)66>>> name.setdefault(‘mike‘,77)66>>> name{‘mike‘: 66, ‘zhaoliu‘: 60, ‘jerry‘: 88, ‘wangwu‘: 70}>>> name.setdefault(‘fjc‘)>>> name{‘mike‘: 66, ‘fjc‘: None, ‘zhaoliu‘: 60, ‘jerry‘: 88, ‘wangwu‘: 70}>>> name.setdefault(‘miss‘,50)50>>> name{‘mike‘: 66, ‘fjc‘: None, ‘zhaoliu‘: 60, ‘miss‘: 50, ‘jerry‘: 88, ‘wangwu‘: 70}
注意:.setdefault()的括弧中可以同時包含鍵和值。
#根據一個列表產生字典中的鍵,值都為None
>>> lst=[1,2,3,4,5]>>> dic={}.fromkeys(lst)>>> dic{1: None, 2: None, 3: None, 4: None, 5: None}
#清空字典
>>> dic.clear()>>> dic{}
#字典迭代器
.iteritems() # 擷取所有索引值
.iterkeys() # 擷取所有鍵
.itervalues() # 擷取所有值
>>> a=name.iteritems()>>> a.next()(‘mike‘, 66)
注意:多次執行.next()可以一一列出索引值
#一個鍵多個值
就是將值改成列表、元組或字典
>>> b={‘a‘:[1,2,3],‘b‘:2}>>> c={‘a‘:(1,2,3),‘b‘:2}>>> d={‘a‘:{‘c‘:3,‘d‘:4},‘b‘:2}
本文出自 “網路技術” 部落格,請務必保留此出處http://fengjicheng.blog.51cto.com/11891287/1927625
python筆記--字典