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

推荐阅读更多精彩内容

  • 字典 dict key-value键值对的数据的集合 可变的、无序的、key不重复 字典dict定义 初始化 d ...
    __RY__阅读 290评论 0 0
  • 中午收到一条微博推送《壮观!安徽毛坦厂中学再迎“送考节”》。28辆满载一万余名学霸考生的送考车缓缓从被誉为“超级中...
    三更笔谈阅读 224评论 0 0
  • #玩卡不卡·每日一抽# 每一位都可以通过这张卡片觉察自己: 1、直觉他叫什么名字?小胖 2、他几岁了?28 3、他...
    李娟AINI阅读 85评论 0 0
  • 心疼由心爱而来,无所爱便无所疼。心疼说明纠缠于人事的最深处,那可能是一种刻骨...
    冰夫阅读 63评论 0 0