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
上一篇:linux svn更新到指定版本


下一篇:lua如何调用C++函数