九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Python 字典排序
dic = {'a' : 31,'b' : 5, 'c' : 3, 'd' : 4, '33' : 56, 'd' : 0}
想把dic的value按照從大到小排序(value都是整數)。

寫法如下:sorted(dic.iteritems(), key=lambdad:d[1], reverse = False )

先看lambda函數是什么意思?
>>> f=lambdax:x+1
>>>f(2)
3
很簡單了,x是參數,x+1是函數返回值。

dic.iteritems()是什么?在sorted函數里又是怎么和lambda發(fā)生關系的呢?看我的調試代碼:
>>> for i indic:
...    print i[0], i           //i[0]第一個字符
 
>>>dic.iteritems()
<dictionary-itemiteratorobject at 0xb7ed1464>    //返回一個對象
>>>type(dic.iteritems())
<type'dictionary-itemiterator'>       
 
>>> printsorted(dic.iteritems(), key=lambda a:a[0])      //dic.iteritems() 返回一個元祖
[('33', 56), ('a', 31), ('b', 5), ('c', 3),('d', 0)]
>>> printsorted(dic.iteritems(), key=lambda a:a[1])
[('d', 0), ('c', 3), ('b', 5), ('a', 31),('33', 56)]
>>> printsorted(dic.iteritems(), key=lambda a:a[0], reverse =False)
[('33', 56), ('a', 31), ('b', 5), ('c', 3),('d', 0)]
 
dic.iteritems()  //返回一個元祖(tuple),每個元祖包含的是一對(key,value)
key=lambda a:a[0]  //key是sorted函數的參數
//lambda a:a[0]是什么?我們把lambda sss:sss[0]結果還是一樣的,他只是前面?zhèn)鬟f過來的參數,名稱是無所謂的
 
sorted(dic.iteritems(), key=lambda d:d[1],reverse = False )

全部的意思就是把dic.iteritems()里的元祖?zhèn)鬟M來,但是我們只要其中的value,也就是d[1](d[0]就是key), 所以key=lambda d:d[1]就是按照value來進行排序。
如果想按照key來進行排序只要key=lambda d:d[0]就可以了, reverse= False(True) 是指是否打開反方向排序


   Python sortsorted函數詳解

一、sort函數

sort函數是序列的內部函數

函數原型:
L.sort(cmp=None, key=None,reverse=False)

函數作用:
它是把L原地排序,也就是使用后并不是返回一個有序的序列副本,而是把當前序列變得有序

參數說明:
(1)  cmp參數
cmp接受一個函數,拿整形舉例,形式為:
def f(a,b):
     returna-b
如果排序的元素是其他類型的,如果a邏輯小于b,函數返回負數;a邏輯等于b,函數返回0;a邏輯大于b,函數返回正數就行了

(2)  key參數
 key也是接受一個函數,不同的是,這個函數只接受一個元素,形式如下
def f(a):
     returnlen(a)
key接受的函數返回值,表示此元素的權值,sort將按照權值大小進行排序

(3) reverse參數
接受False 或者True 表示是否逆序

sort舉例:
(1)按照元素長度排序
L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}]
def f(x):
    return len(x)
sort(key=f)
print L

輸出:
[{1: 9}, {1: 5, 3: 4}, {1: 3, 6: 3}, {1: 1, 2: 4, 5: 6}]


(2)按照每個字典元素里面key為1的元素的值排序
L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}]
def f2(a,b):
    return a[1]-b[1]
L.sort(cmp=f2)
print L

輸出:
[{1: 1, 2: 4, 5: 6}, {1: 3, 6: 3}, {1: 5, 3: 4}, {1: 9}]

二、sorted函數

   sorted函數是內建函數,他接受一個序列,返回有序的副本
他與sort的唯一區(qū)別就是會返回副本 sorted返回的是一個元組構成的list





 

 
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python 內置函數與匿名函數
python中List的sort方法(或者sorted內建函數)的用法
如何對數據進行各種排序?
在Python中,字典按值排序
利用 python 的 sorted 函數對字典按 key 排序和按 value 排序
python筆記18-sort和sorted區(qū)別
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服