python中排序函數sort,sorted和operator.itemgetter的使用

2021-02-19 顥氣寰宇

1.sort

    sort()是Python列表的一個內置的排序方法,list.sort() 方法排序時直接修改原列表,返回None;示例如下:

    如上圖所示,它可以對列表自動進行排序,並生成排好序的新的列表。(a已經改變

2.sorted

    sorted()是Python內置的一個排序函數,它會從一個迭代器返回一個排好序的新列表。(注意:即使是不可變的元組也可以進行排序,最後返回排序後的列表)相比於 sort(),sorted() 使用的範圍更為廣泛,但是如果不需要保留原列表,sort更有效一點。另外,sort() 只是列表的一個方法,只適用於列表,而sorted() 函數接受一切迭代器,返回新列表。

    如上圖所示,sorted不改變原序列,a依舊不變。

在排序方面sorted()函數的功能非常強大,下面我們通過例子來說明:

eg:對字典進行排序

3.operator.itemgetter

  Python中的operator模塊中的itemgetter函數的作用是獲取對象哪些維的數據,參數是表示維的序號。operator.itemgetter函數定義的是一個函數,通過該函數作用到對象上才能獲取值。

相關焦點

  • 我用Python之sort排序
    1 基本介紹Python 3.7.x 中, sort 和 sorted 的定義如下:sort(*, key=None, reverse=False)sorted(iterable, key=None, reverse=False) 兩者功能相似,參數設置相同,不同之處在於 sort() 是列表 List 的內置(built-in)方法,不需要複製原有列表
  • Python內置函數sorted()高級排序用法
    可以結合Python內置函數sorted()從入門到精通來看一些稍微基礎的排序用法。
  • 《python基礎面試,列表排序》
    python基礎面試中,列表排序往往是一個熱門話題,今天就和大家聊聊python的排序知識點首先呢python list內置sort()方法就可以用來排序
  • 在Python中如何使用sorted()和sort()函數(下篇)
    當你同時使用sorted()函數中的key和reverse參數時,如何實現排序的可能性是無窮無盡的。當你為一個小函數使用基本lambda式時,代碼可以保持簡短和整潔,或者你可以編寫一個全新的函數,導入它,並在key參數中使用它。使用.sort()對值排序名稱非常相似的.sort()與內置的sorted()有很大的差別。
  • 在Python中如何使用sorted()和sort()函數
    在這篇教程結束時,你將會知道如何:   1、在數據結構上完成基本的Python排序   2、區分sorted()和.sort()函數   3、基於特定的要求在編碼中自定義一個複雜的排序對於本篇教程而言,你需要對列表、元組以及集合有一個基礎的理解。在本篇教程中,將會使用到這些數據結構,並且在這些數據結構上將會進行一些基礎的操作。
  • python list 排序的兩種方法及實例講解
    用 list 的內建函數 list.sort 進行排序list.sort(func=None, key=None, reverse=False) Python實例:123456>>> L = [2,5,8,9,3]  >
  • python筆記18-sort和sorted區別
    前言python的排序有兩個方法,一個是list對象的sort方法,另外一個是builtin函數裡面sorted,主要區別:備註:
  • Python 列表排序 sort 與 sorted 詳解
    sort 與 sorted 是 Python 內置的列表排序函數。]: type(li.sort())Out[11]: NoneTypesorted使用 sorted(list) 會將 list 進行升序排序,返回 list ,不影響 list 本身,如In [12]: li=[1,5,3,2]In [13]: sorted(li)Out[13
  • 詳細講解:python中的lambda與sorted函數
    本文內容主要介紹了python中的lambda與sorted函數的相關資料,幫助大家更好的理解和學習python,感興趣的朋友可以了解下!!!
  • Python 中的 L.sort() 與 sorted()
    但是,Python中也有內置的排序函數,比如 L.sort() 和 sorted() 函數。但是它們有什麼區別呢?cmp傳入的函數在整個排序過程中會調用多次,因為會進行多次比較,所以函數調用開銷較大,因此使用 key 的效率比 cmp 的效率要高。
  • Python字典不是不可以排序,是你方法沒用對!
    x = {'x':20,'a':12,'b':5}keys = sorted(x.keys())values = sorted(x.values())print(type(keys))print(type(values))print(keys)print(values)在這段代碼中,使用了sorted函數,該函數可以用於對序列進行排序,並將排序結果放到一個列表中
  • Python排序傻傻分不清?一文看透sorted與sort用法
    /python-sort/排序問題是所有程式設計師一定會遇到的問題,Python內置的排序工具sort()和sorted()功能強大,可以實現自定義的複雜式排序。平時我們使用兩個函數可能沒有仔細研究過它們的區別,隨想隨用了。但實際上二者還是有很大的去別的,在一些場景中不同互換使用。本篇將會介紹如何對不同數據結構中的各種類型的數據進行排序,自定義順序,以及使用兩種不同的Python排序方法。最後還會介紹如何區分sorted和sort,如何根據個性要求在代碼中自定義複雜的排序順序。
  • Python 標準庫之 functools/itertools/operator
    首發於我的博客引言functools, itertools, operator是 Python 標準庫為我們提供的支持函數式編程的三大模塊,合理的使用這三個模塊,我們可以寫出更加簡潔可讀的 Pythonic 代碼,接下來我們通過一些 example 來了解三大模塊的使用。
  • Python入門11-列表-用sort()和sorted()對列表排序
    不能對字典排序。sort()方法的語法:list.sort(cmp=None, key=None, reverse=False)其中:· cmp-- 可選參數, 如果指定了該參數會使用該參數的方法進行排序。
  • Python 中排序方法的十條用法總結
    sorted 用於對集合進行排序(這裡說的集合是對可迭代對象的一個統稱,他們可以是列表、字典、set、甚至是字符串),它的功能非常強大,本文將深入淺出地介紹 sorted 的各種使用場景。; sorted(student_objects, key=lambda t:t.age)[('dave', 'B', 10), ('jane', 'B', 12), ('lily', 'A', 12), ('john', 'A', 15)]6、和資料庫的排序一樣,sorted 也可以根據多個欄位來排序,例如我有先要根據age排序,如果age相同的則根據grade排序,則可以使用元組
  • python實踐分享:關於排序算法,怎麼選擇sort()或者sorted()?
    各種排序算法以及它們的時間複雜度分析是很多企業面試人員在面試時候經常會問到的問題,這也不難理解,在實際的應用過程中確實會遇到各種需要排序的情況,如按照字母表輸出一個序列、對記錄的多個欄位排序等。還好,Python中的排序相對簡單,常用的函數有 sort()和sorted()兩種。這兩種函數並不完全相同,各有各的用武之地。
  • 史上最全關於sorted函數的10條總結
    ', 'string', 'test']>>> sorted(chars, key=len)['a', 'is', 'from', 'test', 'This', 'Andrew', 'string']len 是內建函數,sorted 函數在排序的時候會用len去獲取每個字符串的長度來排序。
  • Python機器學習實戰 —— KNN算法詳解
    他博文中提到scikit-learn裡只使用了蠻力實現(brute-force),KD樹實現(KDTree)和球樹(BallTree)實現,所以他的這篇文章中只討論這幾種算法的實現原理。中的(key,value)    #sorted中的key參數傳入函數,operator.itemgetterr函數獲取的不是值,而是定義了一個函數,通過該函數作用到對象上才能獲取值。
  • python那些實用且不為人知的技巧
    Unix Shell 中常用的通配符(比如 .py , Dat[0-9].csv 等)去匹配文本字符串解決方案fnmatch 模塊提供了兩個函數—— fnmatch() 和 fnmatchcase() ,可以用來實現這樣的匹配。
  • 內置排序方法-sorted和sort
    sorted(iterable, key=None, reverse=False) 和 reversed(iterable)函 數可以處理任何可迭代對象