map()函数,filter()函数,reduce()函数,dir()函数

map()它接收一个函数 f 和一个 可迭代对象(这里理解成 list),并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]

如果希望把list的每个元素都作平方,就可以用map()函数:
因此,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算:

def f(x):
return x*x
print(list(map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])))
输出结果:

[1, 4, 9, 10, 25, 36, 49, 64, 81]

配合匿名函数使用:
data = list(range(10))
print(list(map(lambda x: x * x, data)))

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
注意:map()函数不改变原有的 list,而是返回一个新的 list列表。

利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。

由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。

#=================================================================
#filter()函数
#为已知的序列的每个元素调用给定的布尔函数,调用中,返回值为非零的元素将被添加至一个列表中

def f1(x):
if x>20:
return True
else:
return False
l1 = [ 1, 2, 3, 42, 67, 16 ]
print(filter(f1, l1)) #<filter object at 0x000000000117B898>
l2 = filter( f1, l1 )
print(l2) # <filter object at 0x0000000000BCB898>
print(l2.next) #<method-wrapper ‘next’ of filter object at 0x000000000074B898>
print(l2.next()) #42
print(l2.next()) # 67

def iseven(n):
return n%2==0
l6=[5,6,7,8,166,123,66,67,77]
hasf=filter(iseven,l6)
print(hasf) #<filter object at 0x000001D6D9ABA550>

#=================================================================
#reduce()函数
from functools import reduce
l1=[0, 1, 2, 3, 4, 5, 6]
def f4(x,y):
return(x+y)
print(reduce( f4, l1 )) #21

#map,filter,reduce是python的三个内置函数
#reduce,filter,map函数比较类似,都是应用于序列的内置函数。常见的序列包括list、tuple、str

#map函数,它会根据提供的函数对指定序列做映射
#filter方法,从字面意思理解就是过滤,filter函数可以过滤掉不符合条件的序列
#reduce函数,首先还是看看函数的具体结构,它可以对序列中的元素进行累积

dir()

#查看参数所属类型的所有内置方法
#dir()默认查看全局空间内的属性,也接受一个参数,查看这个参数内的方法或变量

print(dir(list)) #查看列表的内置方法
print(dir(int)) #查看整数的内置方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值