网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 跟老齐学Python之字典你还记得吗
内容
    字典,这个东西你现在还用吗?随着网络的发展,用的人越来越少了。不少人习惯于在网上搜索,不仅有web版,乃至于已经有手机版的各种字典了。我曾经用过一本小小的《新华字典》。
    《新华字典》是中国第一部现代汉语字典。最早的名字叫《伍记小字典》,但未能编纂完成。自1953年,开始重编,其凡例完全采用《伍记小字典》。从1953年开始出版,经过反复修订,但是以1957年商务印书馆出版的《新华字典》作为第一版。原由新华辞书社编写,1956年并入中科院语言研究所(现中国社科院语言研究所)词典编辑室。新华字典由商务印书馆出版。历经几代上百名专家学者10余次大规模的修订,重印200多次。成为迄今为止世界出版史上最高发行量的字典。
    这里讲到字典,不是为了叙旧。而是提醒看官想想我们如何使用字典:先查索引(不管是拼音还是偏旁查字),然后通过索引找到相应内容。
    这种方法能够快捷的找到目标。
    在python中,也有一种数据与此相近,不仅相近,这种数据的名称就叫做dictionary,翻译过来是字典,类似于前面的int/str/list,这种类型数据名称是:dict
    依据管理,要知道如何建立dict和它有关属性方法。
    因为已经有了此前的基础,所以,学这个就可以加快了。
    前面曾经建议看官一个很好的学习探究方法,比如想了解str的有关属性方法,可以在交互模式下使用:
    代码如下:
    >>>help(str)
    将得到所有的有关内容。
    现在换一个,使用dir,也能得到相同的结果。只是简单一些罢了。请在交互模式下:
    ?12 >>> 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']
    以__(双下划线)开头的先不管。看后面的。如果要想深入了解,可以这样:
    代码如下:
    >>> help(dict.values)
    然后出现:
    代码如下:
    Help on method_descriptor:
    values(...)
    D.values() -> list of D's values
    (END)
    也就是在这里显示出了values这个内置函数的使用方法。敲击键盘上的q键退回。
    概述
    python中的dict具有如下特点:
    dict是可变的
    dict可以存储任意数量的Python对象
    dict可以存储任何python数据类型
    dict以:key:value,即“键:值”对的形式存储数据,每个键是唯一的。
    dict也被称为关联数组或哈希表。
    以上诸条,如果还不是很理解,也没有关系,通过下面的学习,特别是通过各种实验,就能理解了。
    创建dict
    话说创建dict的方法可是远远多于前面的int/str/list,为什么会多呢?一般规律是复杂点的东西都会有多种渠道生成,这也是从安全便捷角度考虑吧。
    方法1:
    创建一个空的dict,这个空dict,可以在以后向里面加东西用。
    代码如下:
    >>> mydict = {}
    >>> mydict
    {}
    创建有内容的dict。
    代码如下:
    >>> person = {"name":"qiwsir","site":"qiwsir.github.io","language":"python"}
    >>> person
    {'name': 'qiwsir', 'language': 'python', 'site': 'qiwsir.github.io'}
    "name":"qiwsir"就是一个键值对,前面的name叫做键(key),后面的qiwsir是前面的键所对应的值(value)。在一个dict中,键是唯一的,不能重复;值则是对应于键,值可以重复。键值之间用(:)英文的分号,每一对键值之间用英文的逗号(,)隔开。
    代码如下:
    >>> person['name2']="qiwsir" #这是一种向dict中增加键值对的方法
    >>> person
    {'name2': 'qiwsir', 'name': 'qiwsir', 'language': 'python', 'site': 'qiwsir.github.io'}
    如下,演示了从一个空的dict开始增加内容的过程:
    ?12345678910111213 >>> mydict = {} >>> mydict {} >>> mydict["site"] = "qiwsir.github.io">>> mydict[1] = 80>>> mydict[2] = "python">>> mydict["name"] = ["zhangsan","lisi","wangwu"] >>> mydict {1: 80, 2: 'python', 'site': 'qiwsir.github.io', 'name': ['zhangsan', 'lisi', 'wangwu']} >>> mydict[1] = 90 #如果这样,则是修改这个键的值 >>> mydict {1: 90, 2: 'python', 'site': 'qiwsir.github.io', 'name': ['zhangsan', 'lisi', 'wangwu']}
    方法2:
    ?1234 >>> name = (["first","Google"],["second","Yahoo"]) #这是另外一种数据类型,称之为元组,后面会讲到 >>> website = dict(name) >>> website {'second': 'Yahoo', 'first': 'Google'}
    方法3:
    这个方法,跟上面的不同在于使用fromkeys
    ?123 >>> website = {}.fromkeys(("third","forth"),"facebook") >>> website {'forth': 'facebook', 'third': 'facebook'}
    需要提醒的是,这种方法是从新建立一个dict。
    访问dict的值
    因为dict是以键值对的形式存储数据的,所以,只要知道键,就能得到值。这本质上就是一种映射关系。
    ?123456789 >>> person {'name2': 'qiwsir', 'name': 'qiwsir', 'language': 'python', 'site': 'qiwsir.github.io'} >>> person['name'] 'qiwsir'>>> person['language'] 'python'>>> site = person['site'] >>> print site qiwsir.github.io
    如同前面所讲,通过键能够增加dict中的值,通过键能够改变dict中的值,通过键也能够访问dict中的值。
    看官可以跟list对比一下。如果我们访问list中的元素,可以通过索引值得到(list[i]),如果是让机器来巡回访问,就可以用for语句。复习一下:
    ?1234567 >>> person_list = ["qiwsir","Newton","Boolean"] >>> for name in person_list: ... print name ... qiwsir Newton Boolean
    那么,dict是不是也可以用for语句来循环访问呢?当然可以,来看例子:
    ?123456789 >>> person {'name2': 'qiwsir', 'name': 'qiwsir', 'language': 'python', 'site': 'qiwsir.github.io'} >>> for key in person: ... print person[key] ... qiwsir qiwsir python qiwsir.github.io
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/18 4:05:16