函数式编程--高阶函数--sorted

定义

sorted函数可以list进行排序

#sorted可以对list进行排序
L=[3,7,-11,10,6]

print(sorted(L))

sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序。例如按绝对值大小排序:

#接受一个abs,按照绝对值排序
print(sorted(L,key=abs))

以上两个输出结果为:

[-11, 3, 6, 7, 10]
[3, 6, 7, 10, -11]
#对字符串进行排序,默认对ASCII码的大小进行排序
names=[‘bob‘, ‘about‘, ‘Zoo‘, ‘Credit‘]

print(sorted(names))

#要求忽略大小写,按字符顺序进行排序,传入一个lower函数将大写转为小写
print(sorted(names,key=str.lower))

#进行反项排序
print(sorted(names,key=str.lower,reverse=True))

以上三项的输出

[‘Credit‘, ‘Zoo‘, ‘about‘, ‘bob‘]
[‘about‘, ‘bob‘, ‘Credit‘, ‘Zoo‘]
[‘Zoo‘, ‘Credit‘, ‘bob‘, ‘about‘]

以下例子中key=by_sorce 将函数作用L的每一个元素,返回对应的新 L[75,92,66,88] ,然后sorted 函数对新L进行排序

#学生成绩如下,根据姓名进行排序
L = [(‘Bob‘, 75), (‘Adam‘, 92), (‘Bart‘, 66), (‘Lisa‘, 88)]

def by_name(t):
    return t[0]

L2 = sorted(L, key=by_name)
print(L2)

#根据成绩进行排序

def by_sorce(t):
    return t[1]

L3=sorted(L,key=by_sorce,reverse=True)
print(L3)

关于python中的排序:http://www.iplaypy.com/jinjie/jj114.html

时间: 2024-10-25 18:34:42

函数式编程--高阶函数--sorted的相关文章

Python 函数式编程--高阶函数Map、Reduce、Filter、Sorted

1.1   高阶函数 变量可指向函数 >>> abs(-10) 10 >>> x = abs    --x指向abs函数 >>> x(-1)      --直接调用x 1 调用abs和调用x完全相同. 函数名也是变量 >>> abs = 10 >>> abs(-10) Traceback (most recent call last): File "<stdin>", line 1,

Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊

函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 而函数式编程(请注意多了一个"式"字)--Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算. 我们首先要搞明白计算机(Computer)和计算(Compute)的概念. 在计算机的层次上,CPU执行的是加减乘除的指令代码

函数式编程—高阶函数

一.函数式编程概念简介 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元 就是越低级的语言,越贴近计算机,抽象程度低,执行效率高,比如C语言:越高级的语言,越贴近计算,抽象程度高,执行效率低,比如Lisp语言 函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种

python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))

1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 函数式编程:是使用一系列函数去解决问题,函数式编程就是根据编程的范式来的出想要的结果,只要是输入时确定的,输出就是确定的. 1.2高阶函数 能把函数作为参数传入,这样的函数就称为高阶函数. 1.2.1函数即变量 以python的内置函数print()为列,调用该函数一下代码 >>> pri

Python 高阶函数 -- Sorted

详细内容请参考廖雪峰官网,此处只是一些摘抄,心得与练习的coding. Python内置的sorted()函数就可以对list进行排序: >>> sorted([36, 5, -12, 9, -21]) [-21, -12, 5, 9, 36] sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序: >>> sorted([36, 5, -12, 9, -21], key=abs) [5, 9, -12, -21, 3

高阶函数、内置函数

高阶函数:就是把函数当成参数传递的一种函数 python函数式编程 高阶函数:就是把函数当成参数传递的一种函数 1.函数名可以进行赋值: 2.函数名可以作为函数参数,还可以作为函数的返回值: a.函数是第一类对象 b.函数可以被赋值 c.可以被当做参数 d.可以当做返回值 e.可以作为容器类型的元素 def f(n): return n*n def foo(a,b,func): ret = func(a) + func(b) return ret foo(1,2,f) print(foo(1,2

Erlang高阶函数

对于函数式语言来说,函数也想普通的数据类型一样无处不在.函数即可以当成参数进行传递,也可以当成函数的返回值.当我第一次学习函数式编程的时候,我被这样的写法弄的头昏脑涨.下面我举例说明下(例子摘录自Learn You Some Erlang): 假如你想对一个列表中的所有值都进行加1或减1的操作,那么不熟悉函数式编程者给出的是如下的程序: -module(hhfuns). -compile(export_all). increment([]) -> []; increment([H|T]) ->

chapter5.1高阶函数

高阶函数 函数在Python中是一等公民 函数也是对象,可调用对象 函数可以做为普通变量.参数.返回值等 数学概念y = g(f(x)) 在数学和计算机科学中,高阶函数要满足至少一个以下的条件 接收一个或多个函数 输出一个函数,最多一个,不能多 def counter(base): def inc(step = 1): nonlocal base base += step return base return inc s1 = counter(5) s2 = counter(5) 比较两个函数,

函数式编程 &amp; Python中的高阶函数map reduce filter 和sorted

1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数式编程的第一型.在面向对象编程中,我们把对象传来传去,那在函数式编程中,我们要做的是把函数传来传去,而这个,说成术语,我们把他叫做高阶函数.飞林沙 2)特点 计算视为视为函数而非指令 纯函数式编程:不需变量,无副作用,测试简单(每次的执行结果是一样的) 支持高阶函数,代码简洁 2. python支持