内置函数补充map、reduce和filter等

map函数:映射功能

map(function, iterable, ...):可迭代对象向函数function传入元素,并得到一个返回值.

1 >>> map(lambda x :x+1,[1,2,3.4])
2 [2, 3, 4.4]
3 >>> map(lambda x :x+"_key",{"key":"value","key1":"value2"})
4 [‘key1_key‘, ‘key_key‘]

注意,在python2和python3中,map函数的返回的类型不一样。

python2 map函数返回的是列表。

1 >>> l = map(lambda x :x+"_key",{"key":"value","key1":"value2"})
2 >>> l
3 [‘key1_key‘, ‘key_key‘]
4 >>> type(l)
5 <type ‘list‘>

python3中,map函数返回的是map对象,它是一个迭代器,可以调用next方法。

 1 >>> l = map(lambda x :x+"_key",{"key":"value","key1":"value2"})
 2 >>> l
 3 <map object at 0x10558c1d0>
 4 >>> next(l)
 5 ‘key_key‘
 6 >>>
 7 >>> next(l)
 8 ‘key1_key‘
 9 >>> next(l)
10 Traceback (most recent call last):
11   File "<stdin>", line 1, in <module>
12 StopIteration

 reduce函数:处理一个序列,并返回一个值,适合求和。python2中自带reduce函数,python3中需要导入“from functool import reduce”。

reduce(function, iterable[, initializer ]):可迭代对象会把元素传给函数function,function会接收到两个值,如果未指定初始值initializer,则默认传0.

python3

1 >>> from functools import reduce
2 >>> l = reduce(lambda x,y:x+y,range(1,100),100) #给一个初始值100
3 >>> l
4 5050

filter函数:

filter(function, iterable):把可迭代对象变成迭代器,把每一个元素传入函数function,function会返回布尔值,结果为Ture则保留。

python2:

 1 >>> item_price =[
 2 ...     {"item":"apple","price":5},
 3 ...     {"item":"egg","price":4.5},
 4 ...     {"item":"water","price":1.5},
 5 ...     {"item":"fish","price":15}
 6 ... ]
 7 >>> l = filter(lambda d: d["price"]>=5,item_price)
 8 >>> type(l)
 9 <type ‘list‘>
10 >>> l
11 [{‘item‘: ‘apple‘, ‘price‘: 5}, {‘item‘: ‘fish‘, ‘price‘: 15}]

python3

>>> item_price =[
...     {"item":"apple","price":5},
...     {"item":"egg","price":4.5},
...     {"item":"water","price":1.5},
...     {"item":"fish","price":15}
... ]
>>> l = filter(lambda d: d["price"]>=5,item_price)
>>> type(l)
<class ‘filter‘>
>>> l
<filter object at 0x10558c438>
>>> next(l)
{‘item‘: ‘apple‘, ‘price‘: 5}
>>> next(l)
{‘item‘: ‘fish‘, ‘price‘: 15}
>>> next(l)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

pyhton3中封装了很多,类型就是类。所以我们使用map、reduce和fliter返回的都是各自的类型,且都是生成器,可以调用next方法。而python2则都是列表。

时间: 2025-01-14 01:50:25

内置函数补充map、reduce和filter等的相关文章

Python基础----内置函数补充、匿名函数、递归函数

内置函数补充 python divmod()函数:把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b) 语法: 1 divmod(a, b) #a.b为数字,a为除数,b为被除数 示例: 1 >>> divmod(7, 2) 2 (3, 1) #3为商,1为余数 3 >>> divmod(7, 2.5) 4 (2.0, 2.0) 应用:web前端页数计算 1 total_count=73 2 per_count=23 3 res=div

python_day4内置函数补充

之前内容回顾 1.python基础 2.基本数据类型:str.dict.list.tuple.set.. s = "alex" => str # s是创建的一个对象,所有功能被保存在其对应的str的类里 对象是类的实例 isinstance(s, str) ==> True 3.函数式编程 函数定义 内置函数 文件处理 注意: li = [11,22,33,44] def f1(arg):     #此函数没有返回值,默认返回None arg.append(55) li =

Day4 内置函数补充、装饰器

li = [11,22,33,44]def f1(arg): arg.append(55)#函数默认返回值None,函数参数传递的是引用li = f1(li) print(li) 内置函数补充: 判断是否被调用 def f1(): pass print(callable(f1)) ASCII码与数字转换 #数字转换为ASCII码r = chr(65)print(r)#ASCII转换为数字n = ord('a')print(n) 随机验证码 import randomlist_temp =[]fo

内置函数补充,__str__方法、__del__方法 和 __call__方法和元祖

一 .内置函数补充 1.isinstance函数: isinstance(obj,cls)检查obj是否是类 cls 的对象 使用该函数来判断一个函数的类型 2. issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass issubclass(Bar, Foo) 3.下述四个函数是专门用来操作类与对象属性的,如何操作? 通过字符串来操作类与对象的属性,这种操作称为反射 clas

python3全栈开发-内置函数补充,反射,元类,__str__,__del__,exec,type,__call__方法

一.内置函数补充 1.isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() print(isinstance(obj, Foo)) #结果为True 2.issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass print(issubclass(Bar, Foo)) #结果为True

内置函数二: map sorted filter

-----------生活里没有奇迹,大部分的时候奇迹是你自己创造的. # -------------------------------------------------------------------------# # sum = lambda a,b:a+b# svm = sum(10,510)# print(svm) # st = ["魔兽世界","吃鸡","阴阳师","地下城与勇士","传奇"

内置函数补充、匿名函数及闭包

内置函数.匿名函数及闭包 匿名函数 def func(x,y): return (x,y) print(func(1,2)) # 结果: (1,2) f = lambda x,y:(x,y) # lambda关键字 print(f(1,2)) # 结果: (1,2) print((lambda x,y:(x,y))(1,2)) # 结果: (1,2) # 一行代码实现匿名函数的定义及调用 print(lambda :1) print((lambda :1)()) # 匿名函数可以不写参数,但必须

Python 内置函数补充匿名函数

Python3 匿名函数 定义一个函数与变量的定义非常相似,对于有名函数,必须通过变量名访问 def func(x,y,z=1): return x+y+z print(func(1,2,3)) 匿名函数定义:使用 lambda 来创建匿名函数 匿名函数1. 没有名字 2:函数体自带return 匿名函数 def func(x,y,z=1): return x+y+z print(lambda x,y,z=1:x+y+z) function <lambda> at 0x000000000346

Python菜鸟之路一:Python基础-内置函数补充

常用内置函数及用法: 1. callable() def callable(i_e_, some_kind_of_function): # real signature unknown; restored from __doc__ """检查对象object是否可调用.如果返回True,object仍然可能调用失败:但如果返回False,调用对象ojbect绝对不会成功 Return whether the object is callable (i.e., some kin