标签:
(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‘}
标签:
原文地址:http://www.cnblogs.com/lifeinsmile/p/5405959.html