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

python 字典

时间:2016-04-18 22:24:40      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

(1)特性:
无序,无重复,使用hash_table实现
另外:键值必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行
dic = {‘a‘:1 , ‘b‘:2 , ‘c‘: 3},字典中的元素没有顺序,所以dic[0]是有语法错误的;
dic.add[‘c‘] = 4后,字典变成 {‘a‘:1 , ‘b‘:2 , ‘c‘: 4}
(2)常用函数
items() ## #一次性取出所有,返回元组组成的列表 
iteritems()
示例:
>>> D.items() #迭代对象,每次取出一个。用for循环遍历出来,
[(‘a‘, 1), (‘c‘, 3), (‘b‘, 2), (‘d‘, 4)] 
>>> D.iteritems() 
<dictionary-itemiterator object at 0x00000000026243B8>

(3)对字典元素进行排序(借助sorted)
函数原型:sorted(dic,value,reverse)
解释:dic为比较函数,value 为排序的对象(这里指键或键值),reverse:注明升序还是降序,True--降序,False--升序(默认)
示例1:
dic = {‘a‘:31, ‘bc‘:5, ‘c‘:3, ‘asd‘:4, ‘33‘:56, ‘d‘:0}
print sorted(dic.iteritems(), key=lambda d:d[1], reverse = False ) 
#[(‘d‘, 0), (‘c‘, 3), (‘asd‘, 4), (‘bc‘, 5), (‘a‘, 31), (‘33‘, 56)]
其中:dic.iteritems(),返回字典键值对的元祖集合;
key=lambda d:d[1] 是将键值(value)作为排序对象,如果是key=lambda d:d[0] 是将键值(key)作为排序对象
每一项dic.iteritems()键值对的元祖进行迭代,每一项都作为参数传入key()函数

示例2:
>>> sorted(list(dic), key=lambda d:d[1], reverse=False)
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
sorted(list(dic), key=lambda d:d[1], reverse=False)
File "<pyshell#36>", line 1, in <lambda>
sorted(list(dic), key=lambda d:d[1], reverse=False)
IndexError: string index out of range
>>> sorted(list1) ##OK
(4)遍历字典元素,可以使用for迭代循环
示例1:遍历字典的key
dic={‘a‘:‘12‘, ‘we‘:‘90‘, ‘dd‘:‘dd‘}
for key in dic:
print key
示例2:遍历字典的value
dic={‘a‘:‘12‘, ‘we‘:‘90‘, ‘dd‘:‘dd‘}
for value in dic.values():
print value
(5)删除字典元素
del dic[‘a‘]
dic.clear()
del dic

(6)合并两个字典

 

dict1.update(dict2)

http://www.cnblogs.com/dkblog/archive/2012/02/02/2336089.html

(7)创建字典

  * 直接型

  * dict()

  * 内建函数fromkeys():  dict1={}.fromkeys((‘x‘,‘y‘),-1)

  * 两个列表创建字典:

>>> dt=dict(zip(keys,values))
>>> dt
{1: ‘aa‘, 2: ‘bb‘, 3: ‘cc‘, 4: ‘dd‘}

python 字典

标签:

原文地址:http://www.cnblogs.com/lifeinsmile/p/5405959.html

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