码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础教程系列:七、字典(续)

时间:2015-01-30 16:20:45      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:

技术分享不好意思,昨天有急事耽搁了,今天我们接着说字典。首先通过key往字典中添加三条记录。其中方括号中的那就是key,等式右边的就是value,别学完了序列后,总感觉中括号中的那是下角标。

那么字典的更新,包括增、删、改也都分别作了介绍。删除整个字典相对较少,毕竟实际工作中不像做练习,随便删了就可以。那么真想删除整个字典,del dict1即可。其中pop(),这不就相当于出栈操作么,取出来了也就相当于删除了。

 

 

 

 

 

字典操作:

1、字典比较:cmp(),这个比较起来也比较复杂,毕竟也不是完全数与数比大小或者字符比大小,数据类型的不一致导致比较规则也麻烦,而且用的也不是很多也没有多大用,感兴趣自己研究一下。这是比较时优先考虑的(1)比较字典长度(2)比较字典的键(3)比较字典的值(4) Exact Match

2、dict():这个就是来创建字典的。

>>> dict(zip((‘x‘, ‘y‘), (1, 2)))
{‘y‘: 2, ‘x‘: 1}       #zip()函数的用法在前面我们提到过,zip()函数中有两个元组参数seq1和seq2,可以转换成seq1[0]seqq2[0],seq1[1]seq2[1],seq1[i]seq2[i]……,那么如果seq1的长度长,seq2的长度短怎么办?以短的为准,seq1多余部分作废


>>> dict([[‘x‘, 1], [‘y‘, 2]])
{‘y‘: 2, ‘x‘: 1}
>>> dict([(‘xy‘[i-1], i) for i in range(1,3)])
{‘y‘: 2, ‘x‘: 1}   #解释一下,首先后面是个for循环,i的取值只有1和2,再次强调range(start,end),不会产生end这个数,只会产生start到end-1之间的数。当i为1时‘xy‘[0]就是‘x‘,这和字符串通过下角标取字符道理一样,同样‘y‘对应的就是2

3、len():求长度。返回所有键值对的数目

4、keys()、values()、items()

keys()方法,返回一个列表,包含字典中所有的键,values()方法,返回一个列表,包含字典中所有的值,items(), 返回一个包含所有(键, 值)元组的列表。这些方法在不按任何顺序遍历字典的键或值时很有用。

技术分享

keys()方法很有用,它返回一个包含字典中所有键的列表,此方法可以与for 循环一起使用来获取字典中的值。

技术分享

注意:

1、不允许一个键对应多个值:就像更新操作,最后一次操作就把之前的值覆盖掉了,对了,你知道数学中函数的概念吗,x与y的关系

2、键必须是可哈希的,像列表和字典这样的可变类型,由于它们不是可哈希的,所以不能作为键。所有不可变的类型都是可哈希的,因此它们都可以做为字典的键。一个要说明的是问题是数字:值相等的数字表示相同的键。换句话来说,整型数字 1 和 浮点数 1.0 的哈希值是相同的,即它们是相同的键。

字典我们作为基础篇就算说完了,当然直到现在或许你仍不知道字典的魅力在哪里,那么就多多去练习吧。实践才是进步最快的路径。

Python基础教程系列:七、字典(续)

标签:

原文地址:http://my.oschina.net/dfsj66011/blog/373533

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!