对字典的处理

一、对字典的值大小进行排序
from random import randint

d = {x: randint(60, 100) for x in 'xyzabcd'}
'''第一种方法使用zip()方法将字典转化为元组'''
d2 = zip(d.itervalues(), d.iterkeys())

print sorted(d2)
'''第二种方法sorted的key参数'''
d3 = d.items()
print sorted(d3, key= lambda x:x[1])

二、在多个字典中找公共键
from random import randint,sample

s1 = {x: randint(1,4) for x in sample('abcdefg',randint(3, 6))}
s2 = {x: randint(1,4) for x in sample('abcdefg',randint(3, 6))}
s3 = {x: randint(1,4) for x in sample('abcdefg',randint(3, 6))}
'''第一种方法'''
result = s1.viewkeys() & s2.viewkeys() & s3.viewkeys()

'''第二种方法:map()和reduce()'''
r = map(dict.viewkeys, [s1, s2, s3])
result = reduce(lambda a, b: a & b, r)

三、保持字典有序
使用collections中的OrderedDict()
from collections import OrderedDict

d = OrderedDict()
d['lim'] = (1, 39)
d['lin'] = (2, 55)
d['li'] = (3, 60)

for k in d:
    print k
 
 
原文地址:https://www.cnblogs.com/misslin/p/6689518.html