當前位置:首頁 » 編程語言 » python中的排序函數

python中的排序函數

發布時間: 2022-09-23 08:46:54

python怎麼對字典進行排序

給你看看這個字典
dic
=
{'a':1
,
'b':2
,
'c':
3},字典中的元素沒有順序,所以dic[0]是有語法錯誤的。並且不可以有重復的鍵值,所以
dic.add['c']
=
4後,字典變成
{'a':1
,
'b':2
,
'c':
4}.現思考如下:如何根據需要可以根據「鍵」或「鍵值」進行不同順序的排序?函數原型:sorted(dic,value,reverse)解釋:dic為比較函數,value
為排序的對象(這里指鍵或鍵值),
reverse:註明升序還是降序,true--降序,false--升序(默認)案例:dic
=
{'a':1
,
'b':2
,
'c':
3}1.print
sorted(dic.iteritems(),
key
=
lambda
asd:asd[0]
,reverse
=
true)#結果:[('c',
3),
('b',
2),
('a',
1)]2.print
sorted(dic.iteritems(),
key
=
lambda
asd:asd[0]
)#結果:[('a',
1),
('b',
2),
('c',
3)]
,默認(升序)3.print
sorted(dic.iteritems(),
key
=
lambda
asd:asd[1]
)#結果:[('a',
1),
('b',
2),
('c',
3)]這里介紹兩個函數:1.lambda案例:fuc
=
lambda
x:x+
2print
fuc(3)
#結果5,意思對於x
,返回
x
+
22.iteritems()案例:dic
=
{'a':1
,
'b':2
,
'c':
3}print
dic.iteritems()
#
返回字典鍵-值對的一個迭代器在函數sorted(dic.iteritems(),
key
=
lambda
asd:asd[1])中,第一個參數傳給第二個參數「鍵-鍵值」,第二個參數取出其中的鍵(【0】)或鍵值(【1】)

⑵ python中,sort()函數用來排序,但是如果被排的序列中既有數字,又有字母怎麼排。

1,3,a 主要根據asc碼排序,1和3屬於int類型,a屬於str類型,i的asc碼在s前面,所以先排數字,然後1排在3前面沒有什麼疑問了吧。

⑶ python字母順序排序

  • 1. (按字母順序排列)——sort()函數

    例:

    cars=['bmw','audi','toyota','subaru']

    cars.sort()

    print(cars)

    輸出得到

    ['audi', 'bmw', 'subaru', 'toyota']

⑷ 怎樣用python將數組里的數從高到低排序

1、首先我們定義一個列表輸入一串大小不一的數字。

⑸ python中sorted函數的作用是

這是排序函數

⑹ python中從大到小排序的函數

1、示例代碼

def bigToSmall(uList):
uList.sort()
print(uList)
uList.sort(reverse=True)
print(uList)


amn = [34, 56, 78, 12, 31, 45, 67, 77, 35]
bigToSmall(amn)


2、示例結果

[12, 31, 34, 35, 45, 56, 67, 77, 78]

[78, 77, 67, 56, 45, 35, 34, 31, 12]

⑺ python中list.sort()的用

只要是可迭代對象都可以用sorted 。
sorted(itrearble, cmp=None, key=None, reverse=False)
=號後面是默認值 默認是升序排序的, 如果想讓結果降序排列,用reverse=True
最後會將排序的結果放到一個新的列表中, 而不是對iterable本身進行修改。
eg:
1, 簡單排序
sorted('123456') 字元串
['1', '2', '3', '4', '5', '6']
sorted([1,4,5,2,3,6]) 列表
[1, 2, 3, 4, 5, 6]
sorted({1:'q',3:'c',2:'g'}) 字典, 默認對字典的鍵進行排序
[1, 2, 3]
sorted({1:'q',3:'c',2:'g'}.keys()) 對字典的鍵
[1, 2, 3]
sorted({1:'q',3:'c',2:'g'}.values()) 對字典的值
['c', 'g', 'q']
sorted({1:'q',3:'c',2:'g'}.items()) 對鍵值對組成的元組的列表
[(1, 'q'), (2, 'g'), (3, 'c')]
2, 對元素指定的某一部分進行排序,關鍵字排序
s = ['Chr1-10.txt','Chr1-1.txt','Chr1-2.txt','Chr1-14.txt','Chr1-3.txt','Chr1-20.txt','Chr1-5.txt']
我想要按照-後的數字的大小升序排序。要用到key
sorted(s, key=lambda d : int(d.split('-')[-1].split('.')[0]))
['Chr1-1.txt', 'Chr1-2.txt', 'Chr1-3.txt', 'Chr1-5.txt', 'Chr1-10.txt', 'Chr1-14.txt', 'Chr1-20.txt']
這就是key的功能,制定排序的關鍵字,通常都是一個lambda函數,當然你也可以事先定義好這個函數。如果不講這個關鍵字轉化為整型,結果是這樣的:
sorted(s, key=lambda d : d.split('-')[-1].split('.')[0])
['Chr1-1.txt', 'Chr1-10.txt', 'Chr1-14.txt', 'Chr1-2.txt', 'Chr1-20.txt', 'Chr1-3.txt', 'Chr1-5.txt']
這相當於把這個關鍵字當做字元串了,很顯然,在python中,'2' > '10'
你可以定製你想要的key, 如 key = lambda x : len(x) 按照序列的長度去排序。key= lambda x : (x[1], x[0]) 按二個元素,再第一個 等等。。。

⑻ 深入理解python中的排序sort

進行一個簡單的升序排列直接調用sorted()函數,函數將會返回一個排序後的列表:

sorted函數不會改變原有的list,而是返回一個新的排好序的list

如果你想使用就地排序,也就是改變原list的內容,那麼可以使用list.sort()的方法,這個方法的返回值是None。

另一個區別是,list.sort()方法只是list也就是列表類型的方法,只可以在列表類型上調用。而sorted方法則是可以接受任何可迭代對象。

list.sort()和sorted()函數都有一個key參數,可以用來指定一個函數來確定排序的一個優先順序。比如,這個例子就是根據大小寫的優先順序進行排序:

key參數的值應該是一個函數,這個函數接受一個參數然後返回以一個key,這個key就被用作進行排序。這個方法很高效,因為對於每一個輸入的記錄只需要調用一次key函數。
一個常用的場景就是當我們需要對一個復雜對象的某些屬性進行排序時:

再如:

前面我們看到的利用key-function來自定義排序,同時Python也可以通過operator庫來自定義排序,而且通常這種方法更好理解並且效率更高。
operator庫提供了 itemgetter(), attrgetter(), and a methodcaller()三個函數

同時還支持多層排序

list.sort()和sorted()都有一個boolean類型的reverse參數,可以用來指定升序和降序排列,默認為false,也就是升序排序,如果需要降序排列,則需將reverse參數指定為true。

排序的穩定性指,有相同key值的多個記錄進行排序之後,原始的前後關系保持不變

我們可以看到python中的排序是穩定的。

我們可以利用這個穩定的特性來進行一些復雜的排序步驟,比如,我們將學生的數據先按成績降序然後年齡升序。當排序是穩定的時候,我們可以先將年齡升序,再將成績降序會得到相同的結果。

傳統的DSU(Decorate-Sort-Undecorate)的排序方法主要有三個步驟:

因為元組是按字典序比較的,比較完grade之後,會繼續比較i。
添加index的i值不是必須的,但是添加i值有以下好處:

現在python3提供了key-function,所以DSU方法已經不常用了

python2.x版本中,是利用cmp參數自定義排序。
python3.x已經將這個方法移除了,但是我們還是有必要了解一下cmp參數
cmp參數的使用方法就是指定一個函數,自定義排序的規則,和java等其他語言很類似

也可以反序排列

python3.x中可以用如下方式:

⑼ python由小到大排列

1、定義一個數組

2、寫個循環,將輸入的數字放入到數組中

3、sorted函數排序

4、輸出排序後的數組

⑽ python數據同時排序

Python列表具有內置的 list.sort()方法,可以在原地修改列表。 還有一個 sorted()內置的函數從迭代構建一個新的排序列表。在本文中,我們將探討使用Python排序數據的各種技術。

請注意,sort()原始數據被破壞,sorted()沒有對原始數據進行操作,而是新建了一個新數據。

一、基本的排序

最基本的排序很簡單。只要使用sorted()函數即可返回一個 新的排序的列表

>>>sorted([5, 2, 3, 1, 4])

[1, 2, 3, 4, 5]

咱們也可以使用 list.sort()方法。該方法是對列表list進行的原地操作(原數據被修改,已經不是原來的本來面目)。一般情況下,不如使用 sorted()方便,但是如果你不需要原列表list,使用 sort()會更具效率。

>>>a = [5, 2, 3, 1, 4]

>>>a.sort()

>>>a #a發生改變

[1, 2, 3, 4, 5]

另一個不同點, list.sort()方法只能應用於列表對象數據。而 sorted()卻可以對任何可迭代對象進行排序。也就是說sorted()更具有普遍使用性。這里大燈建議初學者使用sorted()。

二、Key參數函數

list.sort()和 sorted()都有key參數,可以指定函數來對元素進行排序。

例如,這里我們使用一個字元串(字元串也是可迭代對象)

>>>sorted("This is a test string from Andrew".split(), key=str.lower)

熱點內容
什麼是dns0伺服器 發布:2022-10-05 14:33:28 瀏覽:161
黑色隱藏字怎麼弄安卓 發布:2022-10-05 14:30:12 瀏覽:859
優酷加密視頻如何下載 發布:2022-10-05 14:30:11 瀏覽:996
忘記手繪密碼怎麼辦 發布:2022-10-05 14:30:10 瀏覽:604
海參的演算法 發布:2022-10-05 14:29:19 瀏覽:99
優酷怎麼不能緩存了 發布:2022-10-05 14:19:48 瀏覽:467
電腦配置低裝什麼系統 發布:2022-10-05 14:18:21 瀏覽:800
高級語言編譯後得到什麼程序 發布:2022-10-05 14:18:13 瀏覽:442
jsp文件下載上傳 發布:2022-10-05 14:18:12 瀏覽:657
知道壓縮包中文密碼怎麼解壓不了 發布:2022-10-05 14:14:22 瀏覽:291