首頁 後端開發 Python教學 Python中lambda表達式的簡單介紹(附範例)

Python中lambda表達式的簡單介紹(附範例)

Oct 10, 2018 pm 03:34 PM
lambda表達式

本篇文章帶給大家的內容是關於Python中lambda表達式的簡單介紹(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

一:匿名函數的定義

lambda parameter_list: expression

二:三元表達式

條件為真時傳回的結果if 條件判斷else 條件為假的時候回傳的結果

三:map

map(func(arg1, arg2...), list1_arg1, list2_arg2),對後面輸入的list分別執行前面的函數(數學的映射)

四:reduce

reduce(func(arg1, arg2...), list1_arg, init_value),連續計算,連續呼叫lambda表達式

五:filter

filter(func(arg1, arg2...), list1_arg1)當條件滿足的時候資料會被過濾出來!

六:函數式程式設計與命令式程式設計

def
    if --else
    for
    map reduce filter
    lambda
登入後複製

函數式程式設計的想法。 。 。 。
命令式程式設計的想法。 。 。 。

函數式程式設計關心資料的映射,命令式程式設計關心解決問題的步驟

函數式程式設計:

(1)指的是函數與其他資料型別一樣,處於平等地位,可以賦值給其他變量,也可以當作參數,傳入另一個函數,或是作為別的函數的回傳值。

(2) 只用"表達式",不用"語句"

from functools import reduce
# ----------------------------------------------------------------#
#   匿名函数的定义
# ----------------------------------------------------------------#


def add(x, y):
    """
    add x and y
    :param x: x can be str or num
    :param y: y can be str or num
    :return:  x+y
    """
    return x + y


# lambda parameter_list: expression
user_sum = lambda arg1, arg2: arg1 + arg2

my_sum = user_sum(2, 2)
print(my_sum)

# ----------------------------------------------------------------#
#   三元表达式
# ----------------------------------------------------------------#
a, b = 1, 2
r = a if a > b else b
print(r)

# ----------------------------------------------------------------#
#   map(func, list),对后面输入的list分别执行前面的函数(数学的映射)
# ----------------------------------------------------------------#

myListMap1 = [1, 2, 3, 4]
myNewListMap1 = map(lambda x: x ** 2, myListMap1)  # 返回为map类型的数据结构
print(type(myNewListMap1))
print('myNewListMap1:', list(myNewListMap1))    # 转换为list


# 两个或者多个参数的map函数的使用
# 当两个参数种元素的个数不相同的时候会截断
myListMap2 = [1, 2, 3, 4]
myNewListMap2 = map(lambda x, y: x + y, myListMap1, myListMap2)
print('myNewListMap2:', list(myNewListMap2))


# ----------------------------------------------------------------#
#   reduce(func, list)连续计算,连续调用lambda表达式
# ----------------------------------------------------------------#

myListReduce = [1, 2, 3, 4]
# 把list中的值一个一个放进lambda中
r = reduce(lambda x, y: x + y, myListReduce)
print(r)

# 对第一个函数参数进行初始化
r = reduce(lambda x, y: x + y, myListReduce, 10)
print(r)

# filter
myListFilter = [3, 5, 6, 7, 8, 9, 10]
myNewListFilter = filter(lambda x: x % 2 == 1, myListFilter)
print('myNewListFilter:', list(myNewListFilter))

list_x = [1, 1, 0, 0]
filter_list = filter(lambda x: True if x == 1 else False, list_x)
print(list(filter_list))
登入後複製

以上是Python中lambda表達式的簡單介紹(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1657
14
CakePHP 教程
1415
52
Laravel 教程
1309
25
PHP教程
1257
29
C# 教程
1230
24
掌握Go語言的函數式程式設計和Lambda表達式 掌握Go語言的函數式程式設計和Lambda表達式 Nov 30, 2023 am 10:46 AM

在當代的程式設計世界中,函數式程式設計(FunctionalProgramming,簡稱FP)已經逐漸成為一種流行的程式設計範式。它強調以函數為基本構建塊來構建程序,將計算過程看作是函數之間的不斷傳遞和轉換。近年來,Go語言(又稱Golang)因其簡潔、高效、並發安全等特點,逐漸被廣泛應用於各個領域。雖然Go語言本身並不是純粹的函數式程式語言,但它提供了足夠的功

如何使用PHP進行函數式編程 如何使用PHP進行函數式編程 Jun 06, 2023 am 08:21 AM

PHP是一種廣泛使用的伺服器端語言,許多Web開發人員喜歡使用PHP的原因之一是它豐富的函數庫和簡單易用的函數語法。而函數式程式設計則是一種程式設計範式,它很好地封裝資料和行為,使得程式碼更加模組化,易於維護和測試。在這篇文章中,我們將介紹如何使用PHP進行函數式程式設計。函數式程式設計基礎函數式程式設計的核心思想是將函數視為一等公民,函數本身可以像變數一樣被傳遞、傳回、組合

使用Lambda表達式的並發程式設計方法 使用Lambda表達式的並發程式設計方法 Aug 20, 2023 am 08:17 AM

JavaSE8的一個重要增加是lambda表達式功能。使用表達式可以清晰簡潔地表達方法介面。集合庫非常有幫助。集合可以被迭代、過濾和提取資料以實現有用的目的。為了實現函數式接口,廣泛使用lambda表達式。它節省了很多代碼。 Lambda表達式允許我們在不重新定義方法的情況下提供實作。只有在此處透過編寫程式碼才會形成實作程式碼。編譯器不會建立一個.class文件,因為Javalambda表達式被視為函數。功能介面@FunctionalInterface是一個Java註解,它將一個介面宣告為函數式介面。

Java 10中的局部變數型別推論:如何在lambda表達式中使用var關鍵字 Java 10中的局部變數型別推論:如何在lambda表達式中使用var關鍵字 Aug 02, 2023 pm 04:25 PM

Java10中的局部變數類型推斷:如何在lambda表達式中使用var關鍵字引言:Java10引入了局部變數類型推斷的新特性,這使得我們可以在宣告局部變數時使用var關鍵字來推斷其類型。雖然這個特性在大多數情況下可能並不是必要的,但在某些情況下,它可以改善程式碼的可讀性和簡潔性。本文將重點放在lambda表達式中如何使用var關鍵字來實現局部變數類型推斷

C#中如何使用LINQ和Lambda表達式提高程式碼效率及解決方法 C#中如何使用LINQ和Lambda表達式提高程式碼效率及解決方法 Oct 08, 2023 pm 03:37 PM

C#中如何使用LINQ和Lambda表達式提高程式碼效率及解決方法引言:隨著軟體開發的不斷進步和發展,程式碼的效率逐漸成為開發者關注的重要面向之一。 C#作為一種強大的程式語言,提供了許多工具和功能來提高程式碼的效率。其中,LINQ和Lambda表達式是兩個非常有用的功能,可以幫助開發人員快速且簡潔地編寫高效的程式碼。本文將介紹如何在C#中使用LINQ和Lambda表

Java中的Lambda表達式使用技巧 Java中的Lambda表達式使用技巧 Jun 16, 2023 am 09:07 AM

在Java8中,Lambda表達式是一項非常強大的工具,它能夠大幅簡化程式碼,使程式碼更加緊湊且易於閱讀。 Lambda表達式也能夠提高程式碼的可重複使用性和可維護性,從而有效地促進了開發效率。本文將介紹一些Java中Lambda表達式的使用技巧,以幫助開發者更好地利用這項強大的工具。技巧一:使用Lambda表達式取代匿名內部類別在Java8之前,如果我們需要在程式碼中

為什麼Python的lambda表達式不能包含語句? 為什麼Python的lambda表達式不能包含語句? Aug 19, 2023 am 08:14 AM

是的,PythonLambda表達式不能包含語句。在深入探討原因之前,讓我們先了解什麼是Lambda,它的表達式和語句。 Lambda表達式允許定義匿名函數。 Lambda函數是一個沒有名稱的匿名函數。讓我們來看看語法−lambdaarguments:expressions關鍵字lambda定義了一個lambda函數。一個lambda表達式包含一個或多個參數,但它只能有一個表達式。 Lambda範例讓我們來看一個範例−myStr="Thisisit!"(lambdamyStr:pr

如何使用Java中的Lambda函數進行函數式編程 如何使用Java中的Lambda函數進行函數式編程 Jun 26, 2023 pm 04:04 PM

函數式程式設計是一種非常流行的程式設計範式,它強調函數的使用和組合,而不是傳統的命令式程式設計中的語句和指令。 Java8中加入的Lambda函數使得在Java中進行函數式程式設計變得更加容易。在本文中,我們將介紹Lambda函數的基礎知識和如何使用它進行函數式程式設計。 Lambda函數的定義Lambda函數是一個沒有宣告的方法,它可以接收參數和回傳值,而且可以像物件一樣傳遞。

See all articles