Skip to content

[Python] 基本教學(9) lambda 的使用

今天希望分享給大家的是 lambda 的使用方法。這是一個我原本也不太常用的功能,畢竟我很懶惰,總覺得都直接用 def 就好了嘛 XD

不過啊,我實驗室的同學老是抱怨:為什麼 Python 沒有 Switch 啊?
看得出來,他最先學習、習慣的語言肯定不是 Python。

Python 其實是可以自己自幹出 Switch 的!不過那要寫很多行哈哈。(跟 C 相比)
而那個傳說中能自幹出 Switch 的方法正是用 lambda。(網路上有很多教學,我就不獻醜了。)

我只想說,其實 lambda 還是有其好用的地方的!


lambda

那麼,我認為,首先我們還複習一個簡單的 function 定義吧!

def determine(n):
    if n >= 50:
        print('%s 至少大於 50!' % n)
    else:
        print('%s 小於 50。' % n)


這是一個簡單的 function!它讓我們輸入數值,並判斷這個數值是否大於 50,

假設我們這樣輸入:

determine(23)


Output:

23 小於 50。

反之,若我們輸入:

determine(99)


Output:

99 至少大於 50!

其實我一直看到印出的文字才覺得我的中文怪怪的!哈哈哈哈!
不過別在意這些小細節,這是為了讓大家能夠複習一下我們的定義一個 function 的重要功能。

那麼,接下來就輪到了今天的主角 —— lambda 了!

lambda 能夠精簡我們的 function,也被稱作『匿名的函式』,他不用事先定義,可以在需要用到的時候直接在當前直接定義、然後反覆利用。

比如說剛剛定義的 function:

determine = lambda n: print('%s 至少大於 50!' % n) if n >= 50 else print('%s 小於 50。' % n)


沒錯,就這樣被定義完了,一行。(一本正經)

我們再來看看剛剛兩個 output:

determine(23)


Output:

23 小於 50。
determine(99)


Output:

99 至少大於 50!

如何,是不是真的起到作用了呢?

當然啦,lambda 賦值兩個變數也是沒問題的。

sum = lambda x, y: x+y
sum(1, 3)


Output:

4

那麼以上,雖然簡短,但這就是我們的 lambda 教學。

如果以後我運用得更熟稔、發覺更多應用之處,那麼還是會再次更新此文章。

就請大家不抱著期待地期待著吧!


References


Read More

Leave a Reply