python 基础 4.3 高阶函数下和匿名函数

一 .匿名函数
顾名思议就是没有名字的函数,那为什么要设立匿名函数,他有什么作用呢?lambda 函数就是一种快速定义单行的最小函数,可以用在任何需要函数的地方。
 
常规版:
def fun(x,y)
return x*y
lambda
 
示例:
/usr/bin/python
#coding=utf-8
#@Time :2017/11/2 15:14
#@Auther :liuzhenchuan
#@File :高阶函数下和匿名函数.py
 
#匿名函数,就是没有名字的函数
def sum(x,y):
return x+y
# print sum(4,5)
 
m = lambda x,y:x+y
print m(4,5)
 
>>> 9
 
 
sorted() 函数
sorted(iterable,cmp=None,key=None,reverse=False)--->new sorted list
对字典进行排序,按照value进行排序
mm =dict(a=1,b=10,c=3,d=9)
 
作用:返回一个经过排序的列表
第一个参数是一个iterable(可迭代的),返回值是一个对iterable中元素进行排序后的列表
可选的参数有三个,cmp,key,reverse
1》cmp 指定一个定制的比较函数,这个函数接收两个参数(iterable的元素),如果第一个参数小于第二个参数,返回一个负数;如果第一个参数等于第二个参数,返回零;如果第一个参数大于第二个参数,返回一个正数,默认值为None。
2》key 指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字,默认值为None
3》reverse 是一个布尔值,如果设置为True,列表元素将被倒序排列。
 
示例:
#匿名函数,就是没有名字的函数
def sum(x,y):
return x+y
# print sum(4,5)
 
m = lambda x,y:x+y
print m(4,5)
 
print '####打印字典##'
mm=dict(a=1,c=10,b=8,d=5)
print mm
 
print '#######打印keys########'
for i in mm:
print i
 
print '########打印keys和values##'
for key,value in mm.iteritems():
print (key,value)
 
print '#######对keys和values排序############'
#keys 定义匿名函数lambda, d为key 通过d[1]取到value
test=sorted(mm.iteritems(),key=lambda d: d[1])
print test
 
>>>
####打印字典##
{'a': 1, 'c': 10, 'b': 8, 'd': 5}
#######打印keys########
a
c
b
d
########打印keys和values##
('a', 1)
('c', 10)
('b', 8)
('d', 5)
#######对keys和values排序############
[('a', 1), ('d', 5), ('b', 8), ('c', 10)]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2017-11-02 16:09  刘振川的博客  阅读(162)  评论(0编辑  收藏  举报