map() Filter() lambda函数说明

map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回

#通过map()函数将list中的数字转换为字符
map(str,range(1,4))

def m(x):
  return m*2

执行:map(m,[1,4,9])
返回:[2,8,18]

 

#示例:将首字母大写,其余小写

def ul(x):
  return x[0].upper() + x[1::].lower()

执行:map(ul,['lily','lucy','Upa','aMn'])
返回:['Lily', 'Lucy', 'Upa', 'Amn']

 

和map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

#取偶
def j(x):
return x%2 == 0

执行:filter(j,range(1,11))
返回:[2, 4, 6, 8, 10]
#返回大于5小于10的数字
def gg(n):
  return n>5 and n<10

执行:filter(gg,range(1,10))
返回:[6, 7, 8, 9]
#删除空字符串
def not_empty(s):
    return s and s.strip()

filter(not_empty, ['A', '', 'B', None, 'C', '  '])
# 结果: ['A', 'B', 'C']

 

lambda:Python支持的一种有趣的语法,允许快速定义单行的最小函数

nn=lambda x,y:x+y
执行: nn(2,3)

或者直接写为:
(lambda x,y:x+y)(2,3

 

posted on 2016-01-07 11:08  momingliu11  阅读(1414)  评论(0编辑  收藏  举报