欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中字典(dict)和列表(list)的排序方法實(shí)例

 更新時(shí)間:2014年06月16日 11:14:22   投稿:junjie  
這篇文章主要介紹了Python中字典(dict)和列表(list)的排序方法實(shí)例,總結(jié)來(lái)說(shuō)優(yōu)先使用內(nèi)置的sort()方法進(jìn)行排序,需要的朋友可以參考下

一、對(duì)列表(list)進(jìn)行排序

推薦的排序方式是使用內(nèi)建的sort()方法,速度最快而且屬于穩(wěn)定排序

復(fù)制代碼 代碼如下:

>>> a = [1,9,3,7,2,0,5]
>>> a.sort()
>>> print a
[0, 1, 2, 3, 5, 7, 9]
>>> a.sort(reverse=True)
>>> print a
[9, 7, 5, 3, 2, 1, 0]
>>> b = ['e','a','be','ad','dab','dbc']
>>> b.sort()
>>> print b
['a', 'ad', 'be', 'dab', 'dbc', 'e']

對(duì)列表的排序是遵循DSU(decorate-sort-undecorate)模式的,序列是安裝條目的順序進(jìn)行比較的,對(duì)剛剛例子中的字符串來(lái)說(shuō),就是按照從左到右的順序,逐個(gè)字符進(jìn)行比較,一旦得出結(jié)果就停止比較。

二、對(duì)字典(dict)進(jìn)行排序

其實(shí)字典(dict)是一個(gè)無(wú)序序列,談不上排序,我們只能按照字典的鍵/值進(jìn)行排序,然后讓對(duì)應(yīng)值/鍵也處于同樣的順序
任何對(duì)字典的排序問(wèn)題,都要最終歸結(jié)為對(duì)字典(dict)的鍵(key)或者值(value)組成的列表(list)的排序

1、按字典(dict)的鍵進(jìn)行排序[1]

復(fù)制代碼 代碼如下:

def sortedDictValues(adict,reverse=False):
 keys = adict.keys()
 keys.sort(reverse=reverse)
 return [adict[key] for key in keys]

如果需要同時(shí)返回鍵和值的話,之用將最后的return語(yǔ)句改為:
復(fù)制代碼 代碼如下:
return [(key,adict[key]]) for key in keys]

還有一種書寫簡(jiǎn)單的方法,就是使用內(nèi)置的sorted()方法進(jìn)行排序:
復(fù)制代碼 代碼如下:

>>> d = {'c':1,'e':'5','b':7}
>>> sorted(d.items())
[('b', 7), ('c', 1), ('e', '5')]

不過(guò)性能會(huì)有些許的下降,如果很苛求性能,還是使用原生對(duì)list.sort()方法比較好

2、按字典(dict)的值進(jìn)行排序[2]

復(fù)制代碼 代碼如下:

def sorted_dict(container, keys, reverse):
 """返回 keys 的列表,根據(jù)container中對(duì)應(yīng)的值排序"""
 aux = [ (container[k], k) for k in keys]
 aux.sort()
 if reverse: aux.reverse()
 return [k for v, k in aux]

同樣可以用sorted()方法實(shí)現(xiàn)同樣的功能:
復(fù)制代碼 代碼如下:
sorted(d.items(), key=lambda d:d[1], reverse=True)

三、結(jié)語(yǔ)

通過(guò)以上代碼的分析,大致總結(jié)處以下幾條原則:
* 對(duì)字典的排序,最終都要?dú)w結(jié)為對(duì)字典的鍵或者值組成的列表的排序
* 對(duì)列表的排序,優(yōu)先使用內(nèi)置的list.sort()方法

相關(guān)文章

  • Python 自動(dòng)化表單提交實(shí)例代碼

    Python 自動(dòng)化表單提交實(shí)例代碼

    今天以一個(gè)表單的自動(dòng)提交,來(lái)進(jìn)一步學(xué)習(xí)selenium的用法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-06-06
  • selenium+python自動(dòng)化測(cè)試之使用webdriver操作瀏覽器的方法

    selenium+python自動(dòng)化測(cè)試之使用webdriver操作瀏覽器的方法

    這篇文章主要介紹了selenium+python自動(dòng)化測(cè)試之使用webdriver操作瀏覽器的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • python 正確保留多位小數(shù)的實(shí)例

    python 正確保留多位小數(shù)的實(shí)例

    今天小編就為大家分享一篇python 正確保留多位小數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 對(duì)Python字符串中的換行符和制表符介紹

    對(duì)Python字符串中的換行符和制表符介紹

    下面小編就為大家分享一篇對(duì)Python字符串中的換行符和制表符介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • python 伯努利分布詳解

    python 伯努利分布詳解

    今天小編就為大家分享一篇python 伯努利分布詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Python爬蟲技術(shù)

    Python爬蟲技術(shù)

    本文將要介紹的是python爬蟲基礎(chǔ)知識(shí),感興趣的小伙伴一起來(lái)學(xué)習(xí)吧
    2021-08-08
  • 利用Python判斷你的密碼難度等級(jí)

    利用Python判斷你的密碼難度等級(jí)

    很多網(wǎng)站在用戶注冊(cè)賬號(hào)的時(shí)候?yàn)榱吮WC賬戶的安全,都會(huì)自動(dòng)檢測(cè)用戶密碼的強(qiáng)度并給出提醒讓用戶設(shè)置一個(gè)相對(duì)安全的密碼。這篇文章主要給大家介紹了關(guān)于利用Python判斷你的密碼難度等級(jí),需要的朋友可以參考下
    2021-06-06
  • python挖掘蛋卷基金投資組合數(shù)據(jù)分析

    python挖掘蛋卷基金投資組合數(shù)據(jù)分析

    這篇文章主要為大家介紹了python挖掘蛋卷基金投資組合數(shù)據(jù)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • tensorflow求導(dǎo)和梯度計(jì)算實(shí)例

    tensorflow求導(dǎo)和梯度計(jì)算實(shí)例

    今天小編就為大家分享一篇tensorflow求導(dǎo)和梯度計(jì)算實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • 布同 統(tǒng)計(jì)英文單詞的個(gè)數(shù)的python代碼

    布同 統(tǒng)計(jì)英文單詞的個(gè)數(shù)的python代碼

    最近需要翻譯英文文章,所以需要統(tǒng)計(jì)單詞個(gè)數(shù)。索性寫了一段代碼在此,可以簡(jiǎn)單的統(tǒng)計(jì)單詞的個(gè)數(shù)
    2011-03-03

最新評(píng)論