python的sorted相关

Python 字典排序

在python里,字典是内置的数据类型,是个无序的存储结构,每一个元素是key-value对:

有关key的解释:

sorted(L,key=by_name)中的key即by_name函数处理的是L这个列表
的每个元素,所以by_name(t)的参数t就是L中的一个元素,
比如说('Lili',75)。所以return t[0]返回的是这个元组的第一个元素,
即名字Lili

 

>>> d
{9: 'xinzhou', 3: 'chen', 5: 'wuhan', 1: 'yadan'}

>>> ss=sorted(d.items(),key=lambda d:d[0])            #主要看这里
>>> ss
[(1, 'yadan'), (3, 'chen'), (5, 'wuhan'), (9, 'xinzhou')]
>>> d
{9: 'xinzhou', 3: 'chen', 5: 'wuhan', 1: 'yadan'}

>>> sss=sorted(d.items(),key=lambda d:d[1])
>>> sss
[(3, 'chen'), (5, 'wuhan'), (9, 'xinzhou'), (1, 'yadan')]
>>> sss=sorted(d.items(),key=lambda d:d[1],reverse=True)    #主要看这里

>>> sss
[(1, 'yadan'), (9, 'xinzhou'), (5, 'wuhan'), (3, 'chen')]
>>> sss=sorted(d.items(),key=lambda d:d[1],reverse=False)

>>> sss
[(3, 'chen'), (5, 'wuhan'), (9, 'xinzhou'), (1, 'yadan')]

 

dict1={'A': 9, 'C': 5, 'B': 1, 'E': 14, 'D': 3, 'G': 3, 'F': 3, 'I': 9, 'H': 7, 'J': 1, 'L': 2, 'O': 8, 'N': 3, 'P': 4, 'S': 10, 'R': 5, 'U': 1, 'T': 17, 'W': 1, 'V': 1}
#对字典按值排序,以元组的形式返回
print sorted(dict1.iteritems(),key=lambda dict1:dict1[1],reverse=True)
#对字典按键排序,以元组的形式返回
print sorted(dict1.iteritems(),key=lambda dict1:dict1[0],reverse=False)

 

参考下其他类型的排序:(估计python2)

>>> student_tuples = [
        ('john', 'A', 15),
        ('jane', 'B', 12),
        ('dave', 'B', 10),
]
>>> sorted(student_tuples, key=lambda student: student[2])   # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

 

例如:

>>> a=[(5,"chen"),(3,"hang"),(7,"wang"),(4,"yadan")]
>>> a
[(5, 'chen'), (3, 'hang'), (7, 'wang'), (4, 'yadan')]
>>> aa=sorted(a,key=lambda a:a[0],reverse=False)
>>> aa
[(3, 'hang'), (4, 'yadan'), (5, 'chen'), (7, 'wang')]
>>> aaa=sorted(a,key=lambda a:a[1],reverse=False)
>>> aaa
[(5, 'chen'), (3, 'hang'), (7, 'wang'), (4, 'yadan')]

 

 

 

 

dd

Python 字典排序

在python里,字典是内置的数据类型,是个无序的存储结构,每一个元素是key-value对:

dict1={'A': 9, 'C': 5, 'B': 1, 'E': 14, 'D': 3, 'G': 3, 'F': 3, 'I': 9, 'H': 7, 'J': 1, 'L': 2, 'O': 8, 'N': 3, 'P': 4, 'S': 10, 'R': 5, 'U': 1, 'T': 17, 'W': 1, 'V': 1}
#对字典按值排序,以元组的形式返回
print sorted(dict1.iteritems(),key=lambda dict1:dict1[1],reverse=True)
#对字典按键排序,以元组的形式返回
print sorted(dict1.iteritems(),key=lambda dict1:dict1[0],reverse=False)
posted @ 2016-10-01 15:11  航飞冲天  阅读(420)  评论(0编辑  收藏  举报