1. 程式人生 > >python列表和字典排序(sort和sorted區別)

python列表和字典排序(sort和sorted區別)

sort和sorted區別:

1、sort是應用在list上的,而sorted可應用於任何可迭代的物件上;

2、list的sort方法是在原始list上操作,而sorted返回新的list;

3、sort使用ls.sort(),而sorted使用sorted(ls);

語法:

sorted(dic.iteritems(), key=lambda d:d[1], reverse=False)

dic.iteritems()        //返回一個元組(tuple),每個tuple對應一對(key,value)

key=lambda d:d[1]    //按照上述返回元組的哪一維排序,此處的 'd' 可任意換為其它的字母

reverse=false           //升序排                         reserve=true                //反序排

L.sort(key=lambda x:x[1],reserve=True)

例項:

sorted舉例:

dic={'a':31,'b':21,'c':3,'33':56,'d':0}
print(sorted(dic.items(), key=lambda a:a[0]))
print(sorted(dic.items(), key=lambda a:a[1]))
print(sorted(dic.items(), key=lambda a:a[0], reverse = False))

輸出:
[('33', 56), ('a', 31), ('b', 21), ('c', 3), ('d', 0)]
[('d', 0), ('c', 3), ('b', 21), ('a', 31), ('33', 56)]
[('33', 56), ('a', 31), ('b', 21), ('c', 3), ('d', 0)]


sort舉例:

L=[('a',1),('b',3), ('e',2),('d',7),('c',5)]
L.sort(key=lambda x:x[0], reverse=True)
print(L)

輸出:[('e', 2), ('d', 7), ('c', 5), ('b', 3), ('a', 1)]