Python-按照list中dict的某个key进行排序
生活随笔
收集整理的這篇文章主要介紹了
Python-按照list中dict的某个key进行排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、list of dict數據結構說明:
?"trends": [{"name": "Rick Gates","promoted_content": null,"query": "%22Rick+Gates%22","tweet_volume": 135732,"url": "http://twitter.com/search?q=%22Rick+Gates%22"},{"name": "#TheBachelorette","promoted_content": null,"query": "%23TheBachelorette","tweet_volume": 91245,"url": "http://twitter.com/search?q=%23TheBachelorette"},{"name": "#KremlinAnnex","promoted_content": null,"query": "%23KremlinAnnex","tweet_volume": 42654,"url": "http://twitter.com/search?q=%23KremlinAnnex"}]2、排序目標:
根據tweet_volume的數值對trends里的元素進行排序。
3、實現代碼:
以下4種方式都可以,第4中性能更好
1)trends = sorted(trends,key = lambda e:e['tweet_volume'],reverse = True) 2)trends = sorted(trends,key = lambda e:e.get('tweet_volume'),reverse = True)) 3)trends = sorted(trends,key = lambda e:e.__getitem__('tweet_volume'),reverse = True)) 4)trends = sorted(trends,key = itemgetter('tweet_volume'),reverse = True)說明:
4、sotred()函數原型:
sorted(iterable[,key][,reverse])iterable:需要排序的變量(必填)
key:指定排序的元素
reverse:指定是否逆序,默認為false
具體可參考上篇文章:Dist類系列(一):根據字典的key值、value值進行排序
5、lambda:匿名函數,一般形式為
lambda arguments: expression6、考慮到有些數據是NULL,因此需要提前做個處理:
對于空的tweet_volume設置為0,完整代碼:
for item in trends:if(item['tweet_volume'] is None):item['tweet_volume'] = 0trends = sorted(trends,key = lambda e:e['tweet_volume'],reverse = True)?
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的Python-按照list中dict的某个key进行排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中List的复制(直接复制、
- 下一篇: Java中for循环continue,b