Python之函数简析(二)

Python之函数

本节重点理解一下map,reduce,filter,lambda,sorted函数的用法

map函数实例:

#!/usr/bin/env python
# -*- coding:utf8 -*-
# @Time     : 2017/11/2 9:32
# @Author   : hantong
# @File     : func.py
#map函数,返回一个列表,第一个是自定义函数,第二个是可迭代对象
print('###############map###################')
lt = [1,2,3,4,5,6]
def MAP(x):
#只有一个参数
    return x*x
l1 = map(MAP,lt)
print(type(l1))
print(l1)

执行结果

###############map###################
<type 'list'>
[1, 4, 9, 16, 25, 36]

reduce函数实例:

#!/usr/bin/env python
# -*- coding:utf8 -*-
# @Time     : 2017/11/2 9:32
# @Author   : hantong
# @File     : func.py
#reduce函数,传入函数必须接收两个参数,每次把可迭代对象的两个元素参数作为函数的实参传入到函数中,
# 每次运算的结果作为第一个实参,可迭代对象的下一个元素作为另一个实参,传入函数中,以此类推
print('##############reduce#################')
def f(x,y):
#两个参数
    return x+y
print(reduce(f,[1,2,3,4,5],10))

执行结果:

##############reduce#################
25

filter函数用法实例:

#!/usr/bin/env python
# -*- coding:utf8 -*-
# @Time     : 2017/11/2 9:32
# @Author   : hantong
# @File     : func.py

#filter函数
#每次把可迭代对象的元素传入进去,如果返回为True,则保留该元素,否则不保留
print('###############filter################')
a = [1,2,3,4,5,6]
def is_odd(x):
#一个参数
    return x%2 == 1
#返回值余数为1的为True则保留下来,其余舍弃
print(filter(is_odd,a))


def is_odd(x):
    return x%2 == 0
#返回值余数为0的为True则保留下来,其余舍弃
print(filter(is_odd,a))

执行结果:

###############filter################
[1, 3, 5]
[2, 4, 6]

lambda匿名函数实例:

#!/usr/bin/env python
# -*- coding:utf8 -*-
# @Time     : 2017/11/2 10:17
# @Author   : hantong
# @File     : func2.py
#匿名函数(lambda)
print('##########lambda###########')
def sum(x,y):
    return x+y
m = lambda x,y:x+y

#lambda函数格式请注意
print(m(4,5))

执行结果:

##########lambda###########
9

sorted函数用法实例:

#!/usr/bin/env python
# -*- coding:utf8 -*-
# @Time     : 2017/11/2 10:17
# @Author   : hantong
# @File     : func2.py

#sorted()函数,对字典进行排序
print('##########字典排序##########')
mm = dict(a=1,b=2,c=10,d=9,k=11,e=20,f=12,g=7)
print(mm)
for i in mm:
    print i
for k ,v in mm.iteritems():
    print(k,v)
print('##################')
test = sorted(mm.iteritems(),key=lambda e: e[1])
test1 = sorted(mm.iteritems(),key=lambda e: e[0])
#此处注意:key=lambda e:  e[1],key=lambda是匿名函数,e: e[1]表示下标为1,比如('c',10),就表示10,而e可以自己定义,
# 比如写成d也行,当下标写成0的时候,就是以字典中k值排序
print(test)
print(test1)

执行结果:

##########字典排序##########
{'a': 1, 'c': 10, 'b': 2, 'e': 20, 'd': 9, 'g': 7, 'f': 12, 'k': 11}
a
c
b
e
d
g
f
k
('a', 1)
('c', 10)
('b', 2)
('e', 20)
('d', 9)
('g', 7)
('f', 12)
('k', 11)
##################
[('a', 1), ('b', 2), ('g', 7), ('d', 9), ('c', 10), ('k', 11), ('f', 12), ('e', 20)]
[('a', 1), ('b', 2), ('c', 10), ('d', 9), ('e', 20), ('f', 12), ('g', 7), ('k', 11)]




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值