导航:首页 > 编程语言 > 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排序去除最值函数相关的资料

热点内容
给我个服务器地址 浏览:227
加法运算律和加法运算法则 浏览:621
如何与国外服务器连接 浏览:172
库房管理系统源码 浏览:59
安卓应用多为什么会卡 浏览:10
php程序员工作职责 浏览:306
程序员可以转行做运维吗 浏览:323
如何检测到服务器端口是否通 浏览:851
linuxsed正则 浏览:109
linux安装gz文件 浏览:357
linux如何卸载编译的软件 浏览:929
高三解压活动视频 浏览:780
如何把服务器卡爆 浏览:949
饿了么java程序员 浏览:960
python编译时找不到路径 浏览:910
jpg转换pdf软件 浏览:103
php读取json文件 浏览:866
螺杆压缩机的功率计算 浏览:74
谷轮压缩机c 浏览:338
苹果app如何复制到另一个手机 浏览:834