導航:首頁 > 編程語言 > python排序去除最值函數

python排序去除最值函數

發布時間:2023-07-09 15:39:16

python中的filter函數怎麼用

  1. python filter內建函數

filter函數是python內建函數,可以操作任何可迭代類型,如list,tuple,string.

filter需要帶上一個函數function和一個可迭代序列作為參數。filter()將調用該function作用於每一個可迭代序列的元素,並返回一個由該function驗證後返回值為true的元素組成新的可迭代序列,新序列的類型保持與filter參數序列的類型一致

2.filter與數字

下面用這個例子來說明:

#建個數字列表
numbers=[1,5,9,8,4,6,3,7]
#定義一個過濾標准,取小於5的數
deflessThanFive(element):
returnelement<5
printfilter(lessThanFive,numbers)
輸出結果是列表:[1,4,3]

解說:此處的過濾函數lessThanFive必需帶入一個參數(filter()會調用lessThanFive,參數是列表nembers中的每一個元素,一次一個)。filter()返回所有值都是小於5的列表

3.filter與字元串

下面用如下例子說明:

#定義元組類型
names=('Jack','Jill,'Steve','')
#篩選出名字
new_names=filter(None,names)
printnew_names
輸出結果是元組:
('Jack','Jill,'Steve')

在元組names最後一個名字是空字元串,而filter的第一個參數是None,這說明需要使用identity函數(該函數是簡單的返回該元素的)

因為python對空字元串,0和None作為False,所以上面的filter的語句就是移除空元素。

4.filter和函數

目的:找出以J開頭的名字

defstartsWithJ(element):
ifelement:
returnelement[0]=='J'
returnFalse
j_names=filter(startsWithJ,names)
printj_names
輸出結果是元組:('Jack','Jill')

注意到了嗎,上面的2個結果都是tuple而不是list,再一次說明fliter的返回值類型與參數序列的類型保持一致

② python中對組合數據類型x進行排序的內置函數是

python有兩個內置的函數用於實現排序,一個是list.sort()函數,一個是sorted()函數。
區別1:list.sort()函數只能處理list類型數據的排序;sorted()則可以處理多種類型數據的排序。
區別2:list.sort()會修改原來的list為排序後的結果;sorted()不會修改原來的數據,只是返回一個排序後的對象。
下面來動手寫點代碼進行測試:
list進行簡單的排序
1 >>>a=['a','f','c','x','e']2 >>>a.sort()3 >>>a4 [a','c','e','f','x']
sorted()進行簡單排序
1 >>>a=['a','f','c','x','e']2 >>>a_new=sorted(a)3 >>>a_new4 ['a', 'c', 'e', 'f', 'x']
list.sort()和sorted都有默認的參數reverse,該參數的默認值為「False」,即默認升序排列。如果要進行降序排列:
1 >>>a=['a','f','c','x','e']2 >>>a_new=sorted(a,reverse=True)3 >>>a_new4 ['x', 'f', 'e', 'c', 'a']
對元組進行排列,不能使用list.sort()函數:
1 >>>a=('a','f','c','x','e')2 >>>a_new=a.sort()3
4 ttributeError: 'tuple' object has no attribute 'sort'
對字典的排序可以按照字典的key或者value進行排序:
1 >>>dic={"aa":11,"ff":5,"ee":22}2 >>>printsorted(dic.keys())3 ['aa', 'ee', 'ff']
從python2.4開始list.sort()和sorted()都引入了key參數來指定一個函數進行排序,有了key參數以後我們就可以對更加復雜的數據進行排序 。
假如需要排序的數據為一個list,但list的每一個元素都是一個字典,排序的方法如下:
>>>dic=[{"name":"sunny","age":20},
{"name":"bell","age":5},
{"name":"jim","age":1},
{"name":"jan","age":10}]>>>print sorted(dic,key=lambda arg:arg.get('age'),reverse=False) #按照每個字典的age的值進行排序,字典的方法dict.get(key)將返回指定鍵的值。
#輸出結果為:[{'age': 1, 'name': 'jim'}, {'age': 5, 'name': 'bell'}, {'age': 10, 'name': 'jan'}, {'age': 20, 'name': 'sunny'}]
>>>print sorted(dic,key=lambda arg:arg.get('name'),reverse=False) #按照每個字典的name的值進行排序
#輸出結果為:[{'age': 5, 'name': 'bell'}, {'age': 10, 'name': 'jan'}, {'age': 1, 'name': 'jim'}, {'age': 20, 'name': 'sunny'}]
假如需要排序的數據為一個二維的list,即list的每一個元素也是一個list,方法與上面的例子類似:
>>>a=[['100','8','30'],['200','5','50'],['300','1','20']]>>>print sorted(a,key=lambda arg:arg[1]) #按照每個list的第1個元素進行排序
[['300', '1', '20'], ['200', '5', '50'], ['100', '8', '30']]
前面的2個例子中,key參數的值都是函數。在sorted函數中,key參數後面的函數的參數的數量只能是一個。lambda arg:arg.get('age')是一個lambda匿名函數,它是一個沒有函數名的單語句函數。冒號左邊是參數,冒號右邊的返回值,返回值將被用於排序。

③ Python3 sort()函數與sorted()函數排序

Python使用過程隨記~
sort()函數與sorted()函數的區別:
sort是list的方法,而sorted可以對所有可迭代對象進行排序(字典,元組等);
sort方法返回的是對已經存在的列表進行操作,會改變原有列表的值;而sorted是新建一個新的list,不改變原有的值。
一.list sort()方法
語法:

key:主要是用來比較的參數,指定對象中的一個對象用來進行排序。
reserve:默認值為reserve=False升序,reserve=True降序。
無返回值,通常如下:

指定列表中的元素排序來輸出:

二.sorted
語法:

iterable:可迭代對象
key:主要是用來比較的參數,指定對象中的一個對象用來進行排序。
reserve:默認值為reserve=False升序,reserve=True降序。
利用key進行倒序排序:

或者通過reserve參數,與sort()函數一致。

若列表內元素為字典/元組,還可以通過key指定來排序:

④ Python里的sort語句

Python中的sort()函數是序列的內部函數,函數原型:

L.sort(cmp=None,key=None,reverse=False)

函數作用:它是把L原地排序,也就是使用後並不是返回一個有序的序列副本,而是把當前序列變得有序。

Python中sort()參數說明:

(1) cmp參數

cmp接受一個函數,拿整形舉例,形式為:

deff(a,b):
returna-b

如果排序的元素是其他類型的,如果a邏輯小於b,函數返回負數;a邏輯等於b,函數返回0;a邏輯大於b,函數返回正數就行了。

(2) key參數

key也是接受一個函數,不同的是,這個函數只接受一個元素,形式如下:

deff(a):
returnlen(a)

key接受的函數返回值,表示此元素的權值,sort將按照權值大小進行排序

(3) reverse參數

接受False 或者True 表示是否逆序

Python中sort()函數舉例:

(1)按照元素長度排序

L=[{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}]
deff(x):
returnlen(x)
sort(key=f)
printL
//輸出:
//[{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}]
deff2(a,b):
returna[1]-b[1]
L.sort(cmp=f2)
printL
//輸出:
//[{1:1,2:4,5:6},{1:3,6:3},{1:5,3:4},{1:9}]

⑤ Python十個評委打分,去掉最大最小值,求平均值

思路:分別將格子的成績用列表表示,然後各自排序,利用切片將最大與最小排除
分別利用sum函數求和並除以8,然後比較兩個值的大小就可以

閱讀全文

與python排序去除最值函數相關的資料

熱點內容
安卓手機emoji扁平怎麼辦 瀏覽:208
歐版三星s20怎麼升級安卓11 瀏覽:104
我的世界伺服器如何拉黑房子 瀏覽:480
linux伺服器網路設置 瀏覽:106
在線編譯代碼怎麼做 瀏覽:205
社會研究方法教程pdf 瀏覽:696
cad修改伺服器地址 瀏覽:788
新手伺服器裝什麼系統好 瀏覽:128
androidxmlui 瀏覽:713
星辰之戀在哪個app播 瀏覽:465
手機卡伺服器出錯誤是怎麼回事 瀏覽:536
cg編譯器怎麼設置 瀏覽:418
單片機教學視頻哪個好 瀏覽:598
編譯器錯誤了怎麼辦 瀏覽:77
看摩托車用什麼app好 瀏覽:405
pdf轉換excel在線轉換 瀏覽:361
php多客服 瀏覽:746
語言編譯程序如何分類 瀏覽:377
pdf下載哪個 瀏覽:77
北京防遺失加密狗地址 瀏覽:534