2019年11月26日 星期二

夠Python,好用的Map函式,將函式當成引數來傳遞

我們都知道Python程式中,任何東西都是物件,函式也是一樣。本節就來說明如何利用Map函式,把函式當成引數來使用。

首先我們參考下列文章:



我們串列為例,mapmap函式的語法如下:

map(function,list)

上面的程式,其意涵就如同下列函式:

def map(func, iterable):
    for i in iterable:
        yield func(i)

也可以使用List Comprehensions來解釋:

[f(x) for x in iterable]

範例:取倍數
1
2
3
4
5
6
7
xs= [1,2,3,4,5,6,7,8]

def f(x):
    return (x * 2)

ys = list(map(f,xs))
print(ys)

執行結果:

另一種寫法:

1
2
3
4
xs= [1,2,3,4,5,6,7,8]

ys = list(map(lambda x: x*2, xs))
print(ys)

範例:取平方

1
2
3
4
xs= [1,2,3,4,5,6,7,8]

ys = list(map(lambda x: x**2, xs))
print(ys)

執行結果:

範例:平方和倍數

1
2
3
4
5
6
7
8
9
def multiply(x):
    return (x*x)
def add(x):
    return (x+x)

funcs = [multiply, add]
for i in range(5):
    value = list(map(lambda x: x(i), funcs))
    print(value)

執行結果:

沒有留言:

張貼留言