Pythonでのいくつかの関数の使用法について(1)

関数

ラムダ(無名関数)

      1.定义了一个匿名函数
      2.只是一个表达式,不是一个语句(注意和def的区别)。
      3.方便代码简洁,符号python精神
      4.会创建一个函数对象,但不会把这个函数对象赋给一个标识符
      5.允许你快速定义单行的最小函数,
具体的可以看下面的例子:
#只有一个参数,
def add(x):
    x = x ** 2
    return x
print(add(4))
#注意lambda的冒号和形式
g = lambda x:x ** 2
print(g(4))
#两个参数
def add(x,y):
    z = x + y
    return z
print(add(3,4))

s = lambda x,y:x + y
print(s(3,4))

地図

    map(function, sequence) 
    对sequence中的item依次执行function(item),这句话的具体意思是:接收一个函数和一个可迭代对象(如列表)作为参数,用函数处理每个元素,然后返回新的列表。注意返回的是对象,要得到结果,还要使用list之类
lst = [1,2,3,4,5]
print(list(map(float,lst)))
    也可以和lambda一起使用
a = [1,2,3,4,5,6]
result = list(map(lambda x:x ** 2,a))
print(result)
lst1 = [1,2,3,4,5,6]
lst2 = [6,5,4,3,2,1]
print(list(map(lambda x,y:x + y,lst1,lst2)))

減らす

reduce(func, seq [, init])
1.在Python 3里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里 用的话要 先引入。
2.reduce是横着加的,map是互相加
3.可以和lambda一起使用
#注意打印的结果
from functools import reduce
print(reduce(lambda x,y:x + y,[1,2,3,4,5]))

フィルタ

filter(func, seq)
1.func可调用对象必须返回一个具有“bool属性”的值。即True或者False。
2.可以对序列做过滤处理
numbers = [-5,-4,-3,-2,-1,0,1,2,3,4,5]
print(list(filter(lambda x: x > 0,numbers)))

おすすめ

転載: blog.csdn.net/yue008/article/details/68108218