python基础之map/reduce/filter/sorted

---map()

  首先来看一看map()函数,map函数接受两个参数,第一个参数是算法,第二个参数是具体数值(注意,数值必须为可迭代的)。即map(fun,iterable)

  map函数就是将具体数值根据算法进行计算,并将结果保存为一个迭代器。我们知道,迭代器很‘懒‘,通过调用next函数一次只输出一个值。

  来看一个最简单的map()例子。

#给定一组数1,2,3,4,5,6。要求求出每个数加一后的值
def fun(x):
    x=x+1
    return x

li=[1,2,3,4,5,6]
r=map(fun,li)
print(type(r))
for i in r:
    print(i)
#结果:
<class ‘map‘>
2
3
4
5
6
7

使用map对一行进行多个赋值

x,y,z=map(int,input(‘please input your number:‘).split())
print(x,y,z)

如何利用map()将名字首字母大写?

def daxie(name):
    return name[0].upper+name[1:]

def daxie2(name):
    return ‘%s%s‘%(name[0].upper(),name[1:])

a=[‘linghuchong‘,‘dongfangbubai‘]
r=map(daxie2,a)
for i in r:
    print(i)

--reduce

  reduce同map函数一样,也是接受两个参数,但不同的是,reduce函数将当前数值的计算结果与下一个数值的计算结果进行累积计算。

  即:reduce(f,[1,2,3,4])=f(f(f(1,2),3),4)

  来看一个简单的reduce函数的例子

#
from functools import reduce
def leijia(x,y):    #注意,我们所定义的函数必须要接受两个参数,否则会报错
    return x+y
print(reduce(leijia,[1,2,3,4,5]))

#结果
15

#当然也可多加默认参数
from functools import reduce
def leijia(x,y,z=2):
    return x+y+z
print(reduce(leijia,[1,2,3,4,5]))

#结果:
23

 --filter

  同上两个函数一样,接受两个参数,第一个参数为函数名,第二个参数为序列。但filter根据序列中各个元素作用与函数时,函数返回结果(True/False)来决定该元素是否保留。

  来看一个筛选偶数的简单例子:

def select(num):
    if num%2==0:
        return True
    else:
        return False

r=filter(select,[1,2,3,4,5,6])
for i in r:
    print(i)

 --sorted

  sorted顾名思义,就是排序的意思。

>>> sorted([22,33,55,11,44])
[11, 22, 33, 44, 55]

  sorted还可以接受一个key函数,实现自定义排序

>>> sorted([22,33,-11,44,-55],key=abs)
[-11, 22, 33, 44, -55]
时间: 2024-10-03 21:53:22

python基础之map/reduce/filter/sorted的相关文章

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

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

Python基础篇【第2篇】: Python内置函数--map/reduce/filter/sorted

Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位置使用lambda表达式.在开发者想要使用一个简单函数作为参数或者返回值时,使用lambda表达式是很方便的.总结:处理简单逻辑,自动返回结果 语法格式: lambda parameters: expression 就相当于 def fun(args) return expression 并且lam

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

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

map() reduce() filter() sorted()

#把变量指向函数#变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数# map()#map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回.def add(x,y,f): #把函数作为参数传入 return f(x) + f(y) a = add(-1,2,abs)print a b = map(str,[1,2,3,4,5])print b #reduce()#reduce(f,[x1,x2,x

Python函数式编程 map reduce filter

函数式编程,使代码简洁高效. Map函数: map(func, *iterables),作用是将一个列表映射到另一个列表. class map(object): """ map(func, *iterables) --> map object Make an iterator that computes the function using arguments from each of the iterables. Stops when the shortest ite

[python基础知识]python内置函数map/reduce/filter

python内置函数map/reduce/filter 这三个函数用的顺手了,很cool. filter()函数:filter函数相当于过滤,调用一个bool_func(只返回bool类型数据的方法)来迭代遍历每个序列中的元素. 返回bool_func结果为true的元素的序列(注意弄清楚序列是什么意思)http://blog.csdn.net/bolike/article/details/19997465序列参考</a> 如果filter参数值为None,list参数中所有为假的元 素都将被

day05 协程函数,递归函数,匿名函数lambda,内置函数map reduce filter max min zip sorted,匿名函数lambda和内置函数结合使用,面向过程编程与函数编程,模块与包的使用,re模块内置函数

基础篇 本章大纲: 协程函数 递归函数 匿名函数lambda 内置函数map reduce filter  max min zip sorted 匿名函数lambda和内置函数结合使用 面向过程编程与函数编程 模块与包的使用 re模块内置函数 一,协程函数 注意:函数先定义,后使用.这是函数第一原则.函数主要分为定义,调用 1.1,什么是协程函数 协程函数特点:yield变为表达式,可以通过g.send(value)传值,用send传值时协程函数需要初始化,也可以说是生成器函数的一种 1.2,协

Demo of Python &quot;Map Reduce Filter&quot;

Here I share with you a demo for python map, reduce and filter functional programming thatowned by me(Xiaoqiang). I assume there are two DB tables, that `file_logs` and `expanded_attrs` which records more columns to expand table `file_logs`. For demo

Python-函数式编程-map reduce filter lambda 三元表达式 闭包

lambda 匿名函数,核心是作为算子,处理逻辑只有一行但具有函数的特性,核心用于函数式编程中 三元运算符 其实本质上是if分支的简化版,满足条件返回 if 前面的值,不满足条件返回 else后面的值 # 100 < 100 返回 False, 则 返回 else后面的值 value = 100 if 100 < 100 else 10 print(value) map 映射函数(依次把可迭代对象(可多个)中的值依次传递到函数中,然后返回生成器(长度以最短的为基础)) numbers = [1