python进阶教程之词典、字典、dict

yipeiwu_com6年前Python基础

基础教程介绍了基本概念,特别是对象和类。

进阶教程对基础教程的进一步拓展,说明Python的细节。希望在进阶教程之后,你对Python有一个更全面的认识。

之前我们说了,列表是Python里的一个类。一个特定的表,比如说nl = [1,3,8],就是这个类的一个对象。我们可以调用这个对象的一些方法,比如 nl.append(15)。

我们要介绍一个新的类,词典 (dictionary)。与列表相似,词典也可以储存多个元素。这种储存多个元素的对象称为容器(container)。

基本概念

常见的创建词典的方法:

复制代码 代码如下:

>>>dic = {'tom':11, 'sam':57,'lily':100}
>>>print type(dic)

词典和表类似的地方,是包含有多个元素,每个元素以逗号分隔。但词典的元素包含有两部分,键和值,常见的是以字符串来表示键,也可以使用数字或者真值来表示键(不可变的对象可以作为键)。值可以是任意对象。键和值两者一一对应。

比如上面的例子中,‘tom'对应11,'sam对应57,'lily'对应100
 
与表不同的是,词典的元素没有顺序。你不能通过下标引用元素。词典是通过键来引用。

复制代码 代码如下:

>>>print dic['tom']
>>>dic['tom'] = 30
>>>print dic

构建一个新的空的词典:

复制代码 代码如下:

>>>dic = {}
>>>print dic

 

在词典中增添一个新元素的方法:

复制代码 代码如下:

>>>dic['lilei'] = 99
>>>print dic

这里,我们引用一个新的键,并赋予它对应的值。

词典元素的循环调用

复制代码 代码如下:

dic = {'lilei': 90, 'lily': 100, 'sam': 57, 'tom': 90}
for key in dic:
    print dic[key]

在循环中,dict的每个键,被提取出来,赋予给key变量。

通过print的结果,我们可以再次确认,dic中的元素是没有顺序的。

词典的常用方法

复制代码 代码如下:

>>>print dic.keys()           # 返回dic所有的键
>>>print dic.values()         # 返回dic所有的值
>>>print dic.items()          # 返回dic所有的元素(键值对)
>>>dic.clear()                # 清空dic,dict变为{}

 

另外有一个很常用的用法:

复制代码 代码如下:

>>>del dic['tom']             # 删除 dic 的‘tom'元素

del是Python中保留的关键字,用于删除对象。

与表类似,你可以用len()查询词典中的元素总数。

复制代码 代码如下:

>>>print(len(dic))

总结

词典的每个元素是键值对。元素没有顺序。

复制代码 代码如下:

dic = {'tom':11, 'sam':57,'lily':100}
dic['tom'] = 99
for key in dic: ...
del, len()

相关文章

python通过urllib2爬网页上种子下载示例

通过urllib2、re模块抓种子 思路 1.用程序登录论坛(如果需要登录才能访问的版块) 2.访问指定版块 3.遍历帖子(先取指定页,再遍历页面所有帖子的url) 4.循环访问所有帖子...

基于使用paramiko执行远程linux主机命令(详解)

paramiko是python的SSH库,可用来连接远程linux主机,然后执行linux命令或者通过SFTP传输文件。 关于使用paramiko执行远程主机命令可以找到很多参考资料了,...

python机器学习理论与实战(六)支持向量机

python机器学习理论与实战(六)支持向量机

上节基本完成了SVM的理论推倒,寻找最大化间隔的目标最终转换成求解拉格朗日乘子变量alpha的求解问题,求出了alpha即可求解出SVM的权重W,有了权重也就有了最大间隔距离,但是其实上...

Python如何获得百度统计API的数据并发送邮件示例代码

小工具 本来这么晚是不准备写博客的,当是想到了那个狗子绝对会在开学的时候跟我逼逼这个事情,所以,还是老老实实地写一下吧。 Baidu统计API的使用 系统环境: Python2...

用Python中的wxPython实现最基本的浏览器功能

通常,大多数应用程序通过保持 HTML 简单来解决大多数浏览器问题 ― 或者说,根据最低共同特性来编写。然而,即便如此,也仍然存在字体和布局的问题,发行新浏览器和升级现有浏览器时,也免不...