#返回迭代器,节省内存
d.iterkeys()
d.itervalues()
d.iteritems()
d.setdefault('name', 'ken') #若原来没有,设置,否则原值不变
其他
1.字典排序按照key排序
keys = d.keys()
keys.sort()
for key in keys:
print d.get(key)
按照value进行排序
sorted(d.items(), lambda x,y: cmp(x[1],y[1]))
另外:
#假设d为字典
sorted(d) #返回同 sorted(d.keys()),返回的是key排序
2.自定义对象作为key
必须:
def __hash__(self):
pass
def __eq__(self, other):
pass
3.字典拷贝浅拷贝:
c = d.copy() #
深拷贝必须用copy模块
form copy import deepcopy
c = deepcopy(d)
4.一种使用场景假设有一个很大的列表l,假设10w条记录
有一个小列表b,要判断b中元素是否在l中
如果:
for i in b:
if i in l:
dosomething()
你会发现非常非常慢...因为第二个in语句,会遍历10w条….
改进:
d = dict.fromkeys(l)
for i in b:
if i in d:
dosomething()
#空间换时间,O(n) -> O(1)










