1. 程式人生 > >python 資料結構 字典

python 資料結構 字典

字典,名稱就叫做dictionary,翻譯過來是字典,類似於前面的int/str/list,這種型別資料名稱是:dict
實驗:

>>>help(dict)

使用dir,也能得到相同的結果。

>>> dir(dict)
['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues']

values這個內建函式的使用方法

>>> help(dict.values)
Help on method_descriptor:

values(...)
    D.values() -> list of D's values
(END)

q鍵退回。

概述

python中的dict具有如下特點:
dict是可變的
dict可以儲存任意數量的Python物件
dict可以儲存任何python資料型別
dict以:key:value,即“鍵:值”對的形式儲存資料,每個鍵是唯一的。
dict也被稱為關聯陣列或雜湊表。
以上諸條,如果還不是很理解,也沒有關係,通過下面的學習,特別是通過各種實驗,就能理解了。

建立dict

  • 方法1:

建立一個空的dict,這個空dict,可以在以後向裡面加東西用。

>>> mydict = {}
>>> mydict
{}

建立有內容的dict。

>>> person = {"name":"hiekay","site":"hiekay.github.io","language":"python"}
>>> person
{'name': 'hiekay', 'language': 'python', 'site': 'hiekay.github.io'}

“name”:"hiekay"就是一個鍵值對,前面的name叫做鍵(key),後面的hiekay是前面的鍵所對應的值(value)。在一個dict中,鍵是唯一的,不能重複;值則是對應於鍵,值可以重複。鍵值之間用(:)英文的分號,每一對鍵值之間用英文的逗號(,)隔開。

>>> person['name2']="hiekay"    #這是一種向dict中增加鍵值對的方法
>>> person
{'name2': 'hiekay', 'name': 'hiekay', 'language': 'python', 'site': 'hiekay.github.io'}

如下,演示了從一個空的dict開始增加內容的過程:

>>> mydict = {}
>>> mydict
{}
>>> mydict["site"] = "hiekay.github.io"
>>> mydict[1] = 80
>>> mydict[2] = "python"
>>> mydict["name"] = ["zhangsan","lisi","wangwu"]
>>> mydict
{1: 80, 2: 'python', 'site': 'hiekay.github.io', 'name': ['zhangsan', 'lisi', 'wangwu']}

>>> mydict[1] = 90  #如果這樣,則是修改這個鍵的值
>>> mydict
{1: 90, 2: 'python', 'site': 'hiekay.github.io', 'name': ['zhangsan', 'lisi', 'wangwu']}
  • 方法2: 元組
>>> name = (["first","Google"],["second","Yahoo"])      #這是另外一種資料型別,稱之為元組,後面會講到
>>> website = dict(name)
>>> website
{'second': 'Yahoo', 'first': 'Google'}
  • 方法3: Python 字典 fromkeys() 函式用於建立一個新字典,以序列 seq 中元素做字典的鍵,value 為字典所有鍵對應的初始值。
>>> website = {}.fromkeys(("third","forth"),"facebook")
>>> website
{'forth': 'facebook', 'third': 'facebook'}

需要提醒的是,這種方法是從新建立一個dict。

訪問dict的值

因為dict是以鍵值對的形式儲存資料的,所以,只要知道鍵,就能得到值。這本質上就是一種對映關係。

>>> person
{'name2': 'hiekay', 'name': 'hiekay', 'language': 'python', 'site': 'hiekay.github.io'}
>>> person['name']
'hiekay'
>>> person['language']
'python'
>>> site = person['site']
>>> print site
hiekay.github.io

遍歷:

可以用for語句

>>> person
{'name2': 'hiekay', 'name': 'hiekay', 'language': 'python', 'site': 'hiekay.github.io'}
>>> for key in person:
...     print person[key]
...
hiekay
hiekay
python
hiekay.github.io