python对字典进行排序实例,python排序实例


本文实例讲述了python对字典进行排序的方法,是非常实用的技巧。分享给大家供大家参考。

具体实现方法如下:

import itertools 
thekeys = ['b','a','c'] 
thevalues = ['bbb','aaa','cccc'] 
 
d = dict(itertools.izip(thekeys,thevalues)) #创建字典 
print d 
 
def sortedDictValue(adict): 
  keys = adict.keys() 
  keys.sort() 
  return map(adict.get,keys) 
 
print sortedDictValue(d)
import itertools
thekeys = ['b','a','c']
thevalues = ['bbb','aaa','cccc']
def sortedDictValue(adict): #自定义的排序函数,先取得字典的keys(),然后对keys进行排序,最后根据排序好的keys取字典的值 
  keys = adict.keys() 
  keys.sort() 
  return map(adict.get,keys)#只有这里不同,这里调用内置的map函数,对每个keys中的项目,调用adict.get函数,返回一个列表  
 
print sortedDictValue(d) 
#打印出相同的结果 

程序运行结果为:

{'a': 'aaa', 'c': 'cccc', 'b': 'bbb'}
['aaa', 'bbb', 'cccc']
['aaa', 'bbb', 'cccc']

希望本文所述对大家Python程序设计的学习有所帮助。


python中字典的排序

>>> d
{'a': 1, 'world': 11, 'z': 9, 'hello': 10}
>>> k=d.keys()
>>> k.sort()
>>> k
['a', 'hello', 'world', 'z']
>>> t=map(lambda key:(key,d[key]),k)
>>> t
[('a', 1), ('hello', 10), ('world', 11), ('z', 9)]
 

python 中的字典怎排序,怎按照添加的顺序显示

给你看看这个字典 dic = {'a':1 , 'b':2 , 'c': 3},字典中的元素没有顺序,所以dic[0]是有语法错误的。并且不可以有重复的键值,所以 dic.add['c'] = 4后,字典变成 {'a':1 , 'b':2 , 'c': 4}.现思考如下:如何根据需要可以根据“键”或“键值”进行不同顺序的排序?函数原型:sorted(dic,value,reverse)解释:dic为比较函数,value 为排序的对象(这里指键或键值), reverse:注明升序还是降序,True--降序,False--升序(默认)案例:dic = {'a':1 , 'b':2 , 'c': 3}1.print sorted(dic.iteritems(), key = lambda asd:asd[0] ,reverse = True)#结果:[('c', 3), ('b', 2), ('a', 1)]2.print sorted(dic.iteritems(), key = lambda asd:asd[0] )#结果:[('a', 1), ('b', 2), ('c', 3)] ,默认(升序)3.print sorted(dic.iteritems(), key = lambda asd:asd[1] )#结果:[('a', 1), ('b', 2), ('c', 3)]这里介绍两个函数:1.lambda案例:fuc = lambda x:x+ 2print fuc(3) #结果5,意思对于x ,返回 x + 22.iteritems()案例:dic = {'a':1 , 'b':2 , 'c': 3}print dic.iteritems() # 返回字典键-值对的一个迭代器在函数sorted(dic.iteritems(), key = lambda asd:asd[1])中,第一个参数传给第二个参数“键-键值”,第二个参数取出其中的键(【0】)或键值(【1】)
 

评论关闭