python筆記--字典

來源:互聯網
上載者:User

標籤: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筆記--字典

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.