php有lambda表达式吗,Python中lambda表达式的简单介绍(附示例)
本篇文章給大家?guī)淼膬?nèi)容是關(guān)于Python中l(wèi)ambda表達(dá)式的簡單介紹(附示例),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。
一:匿名函數(shù)的定義
lambda parameter_list: expression
二:三元表達(dá)式
條件為真時(shí)返回的結(jié)果 if 條件判斷 else 條件為假的時(shí)候返回的結(jié)果
三:map
map(func(arg1, arg2...), list1_arg1, list2_arg2),對(duì)后面輸入的list分別執(zhí)行前面的函數(shù)(數(shù)學(xué)的映射)
四:reduce
reduce(func(arg1, arg2...), list1_arg, init_value),連續(xù)計(jì)算,連續(xù)調(diào)用lambda表達(dá)式
五:filter
filter(func(arg1, arg2...), list1_arg1)當(dāng)條件滿足的時(shí)候數(shù)據(jù)會(huì)被過濾出來!
六:函數(shù)式編程和命令式編程def
if --else
for
map reduce filter
lambda
函數(shù)式編程的思想。。。。
命令式編程的思想。。。。
函數(shù)式編程關(guān)心數(shù)據(jù)的映射,命令式編程關(guān)心解決問題的步驟
函數(shù)式編程:
(1)指的是函數(shù)與其他數(shù)據(jù)類型一樣,處于平等地位,可以賦值給其他變量,也可以作為參數(shù),傳入另一個(gè)函數(shù),或者作為別的函數(shù)的返回值。
(2) 只用"表達(dá)式",不用"語句"from functools import reduce
# ----------------------------------------------------------------#
# 匿名函數(shù)的定義
# ----------------------------------------------------------------#
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)
# ----------------------------------------------------------------#
# 三元表達(dá)式
# ----------------------------------------------------------------#
a, b = 1, 2
r = a if a > b else b
print(r)
# ----------------------------------------------------------------#
# map(func, list),對(duì)后面輸入的list分別執(zhí)行前面的函數(shù)(數(shù)學(xué)的映射)
# ----------------------------------------------------------------#
myListMap1 = [1, 2, 3, 4]
myNewListMap1 = map(lambda x: x ** 2, myListMap1) # 返回為map類型的數(shù)據(jù)結(jié)構(gòu)
print(type(myNewListMap1))
print('myNewListMap1:', list(myNewListMap1)) # 轉(zhuǎn)換為list
# 兩個(gè)或者多個(gè)參數(shù)的map函數(shù)的使用
# 當(dāng)兩個(gè)參數(shù)種元素的個(gè)數(shù)不相同的時(shí)候會(huì)截?cái)?/p>
myListMap2 = [1, 2, 3, 4]
myNewListMap2 = map(lambda x, y: x + y, myListMap1, myListMap2)
print('myNewListMap2:', list(myNewListMap2))
# ----------------------------------------------------------------#
# reduce(func, list)連續(xù)計(jì)算,連續(xù)調(diào)用lambda表達(dá)式
# ----------------------------------------------------------------#
myListReduce = [1, 2, 3, 4]
# 把list中的值一個(gè)一個(gè)放進(jìn)lambda中
r = reduce(lambda x, y: x + y, myListReduce)
print(r)
# 對(duì)第一個(gè)函數(shù)參數(shù)進(jìn)行初始化
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))
總結(jié)
以上是生活随笔為你收集整理的php有lambda表达式吗,Python中lambda表达式的简单介绍(附示例)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蚂蚁算法matlab
- 下一篇: java 发邮件_java实现邮件的发送