python中sort用法的問題

sorted是一個函數,函數返回一個排序結果。目標list本身不變

❷ 關於python中sorted方法的key參數

Python幫助文檔中對sorted方法的講解:
sorted(iterable[,cmp,[,key[,reverse=True]]])
作用:返回一個經過排序的列表。
第一個參數是一個iterable,返回值是一個對iterable中元素進行排序後的列表(list)。
可選的參數有三個,cmp、key和reverse。
1)cmp指定一個定製的比較函數,這個函數接收兩個參數(iterable的元素),如果第一個參數小於第二個參數,返回一個負數;如果第一個參數等於第二個參數,返回零;如果第一個參數大於第二個參數,返回一個正數。默認值為None。
2)key指定一個接收一個參數的函數,這個函數用於從每個元素中提取一個用於比較的關鍵字。默認值為None。
3)reverse是一個布爾值。如果設置為True,列表元素將被倒序排列。
key參數的值應該是一個函數,這個函數接收一個參數並且返回一個用於比較的關鍵字。對復雜對象的比較通常是使用對象的切片作為關鍵字。例如:
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=lambda s: s[2]) #按年齡排序
# [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

❸ 網上python內置sorted()排列用法說明我不理解

請注意 sorted()只是排序,列表中的元素自身不會發生任何改變(除順序)
key的理解:用列表元素的某個屬性和函數進行作為關鍵字,
說白了,就是拿每個元素的小寫屬性(str.lower)作為關鍵字來比較 進行排序;而不是真正的將列表中的每個元素轉換為小寫,進行排序;

❹ python中sorted怎麼反序排列

a=[2,1,0,3,4]
print(sorted(a))
print(sorted(a,reverse=True))

❺ python中sorted怎麼反序排列

  1. 使用sorted()內置函數:

    ❻ python 的sorted用法,按照特定的序列排序。如下文,請知道的大大詳細解釋下key代表的什麼。

    sorted(list,key=dic_be_ranked.__getitem__)

    ❼ 關於python的sorted函數的問題

    實際上sorted()後面跟著的內容,是一個列表生成式,相當於一個列表。

    列表生成式格式就是 ... for ... in ... if .......,具體請在網上搜索
    比如 [x for x in range(100) if x%3==0],意思就是 1到100內所有3的倍數的列表。

    ❽ python3.0中sorted函數怎麼用

    【Python】 sorted函數
    我們需要對List、Dict進行排序,Python提供了兩個方法
    對給定的List L進行排序,
    方法1.用List的成員函數sort進行排序,在本地進行排序,不返回副本
    方法2.用built-in函數sorted進行排序(從2.4開始),返回副本,原始輸入不變

    --------------------------------sorted---------------------------------------
    >>> help(sorted)
    Help on built-in function sorted in mole __builtin__:

    sorted(...)
    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
    ---------------------------------sort----------------------------------------
    >>> help(list.sort)
    Help on method_descriptor:

    sort(...)
    L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
    cmp(x, y) -> -1, 0, 1
    -----------------------------------------------------------------------------

    iterable:是可迭代類型;
    cmp:用於比較的函數,比較什麼由key決定;
    key:用列表元素的某個屬性或函數進行作為關鍵字,有默認值,迭代集合中的一項;
    reverse:排序規則. reverse = True 降序 或者 reverse = False 升序,有默認值。
    返回值:是一個經過排序的可迭代類型,與iterable一樣。

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

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

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

    例子:
    (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
    . 對由tuple組成的List排序
    Python代碼
    >>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),]

    用key函數排序:返回由tuple組成的list
    Python代碼
    >>> sorted(students, key=lambda student : student[2]) # sort by age
    [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

    用cmp函數排序
    Python代碼
    >>> sorted(students, cmp=lambda x,y : cmp(x[2], y[2])) # sort by age
    [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

    用 operator 函數來加快速度,
    Python代碼
    >>> from operator import itemgetter, attrgetter
    >>> sorted(students, key=itemgetter(2))

    用 operator 函數進行多級排序
    Python代碼
    >>> sorted(students, key=itemgetter(1,2)) # sort by grade then by age
    [('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]

    2. 對由字典排序 ,返回由tuple組成的List,不再是字典。
    Python代碼
    >>> d = {'data1':3, 'data2':1, 'data3':2, 'data4':4}
    >>> sorted(d.iteritems(), key=itemgetter(1), reverse=True)
    [('data4', 4), ('data1', 3), ('data3', 2), ('data2', 1)]

    ❾ python sorted怎麼降序排序

    1、首先打開cmd命令提示符,輸入指令「ipython」打開python的命令行工具:

    ❿ python 的sorted是按什麼進行排序的啊

    因為內建數據類型實現了內建的比較方法,比如 __lt__()等