无序,k-v对存在,查找速度快,占用内存高,key是唯一值,不能重复。
在python终端,使用dir(dict)获取方法及属性列表,使用help(dict)获取其使用方法
声明:dict={}声明并赋值:dict={'key':'value','num':1,'list':[1,2],'tup':(1,2,3)}
dict['key'] = 'value':使用dict['key']=value的方式为字典重新赋值,或添加元素
d.pop('k'): 删除字典指定的k,并且返回该k的值del d['k']: 删除字典的指定kdel dict: 删除整个字典
dict['k']: 当dict不存在k时,抛出异常dict.get('k'): 当dict不存在k时,返回None
- 获取keys列表:
dict.keys() - 获取值列表 :
dict.values() - 获取(k,v)元组列表:
dict.items() - 获取以上列表的可迭代对象,需要使用
dict.iterkeys(); dict.itervalues(); dict.iteritems()
for k,v in dict.items():
print 'key:',k," -value:",v- str 转 dict :
eval()函数: 使用eval()函数可以使字符串转为字典eval(str)exec()函数: 需要声明一个被赋值的变量
>>> s="{'k':1,'w':2}"
>>> d=None
>>> exec('d='+s)
>>> d
{'k': 1, 'w': 2}
>>> d['k']
1
>>> - json模块:转换带特殊字符的字典
>>> s='[{"RepoDigests": null,"Created":1466711701,"Size":5042677,"VirtualSize":5042677,"Labels":null}]'
>>> import json
>>> print json.loads(s)
[{u'Labels': None, u'Size': 5042677, u'RepoDigests': None, u'VirtualSize': 5042677, u'Created': 1466711701}]
>>> - dict 转 str :
str(dict)
keys=dict.keys()
for k in keys.sort():
print dict.get('k')a={1:1}
b={2:2}
c= dict(a,**b) # 返回值为大字典
a.update(b) # 返回值为None,a为大字典dic = {'a': 1, 'b': 2, 'c': 3}
lis = ['a', 'b']
print dict(zip(lis, map(lambda k: dic.get(k), lis)))k = ['a', 'b', 'c']
v = [1, 2, 3]
print zip(k, v)
print dict(zip(k, v))class E:
def __init__(self, k, v):
self.k = k
self.v = v
e1 = E('a', 1)
e2 = E('b', 2)
e3 = E('c', 3)
l = [e1, e2, e3]
print reduce(lambda o1, o2: dict(o1, **o2),
map(lambda e: {e.k: e.v}, l))