lambda匿名函數,sorted排序,filter()篩選,map()映射


一丶匿名函數

  語法:

    函數名 = lambda參數:返回值

# 普通的正常的函數
def func(n):
    return n * n
ret = func(9)
print(ret)

# 匿名函數
a = lambda n : n * n
ret = a(9)
print(ret)

  說是匿名函數,可總該有個名字吧,我們可以用__name__來查看一下名字

b = lambda x: x+1
a = lambda n : n * n
print(a.__name__) # __name__的值都是<lambda>
print(b.__name__) # __name__的值都是<lambda>

  單個變量傳值可以這樣傳,那假如兩個或多個變量呢,該怎么樣呢?我們可以用小括號括起來,要不就會報錯

def func(x, y):
    return x, y

print(func(1,2)) #(1,2)

suiyi = lambda x, y : (1, 2)   # 筆試題
print(suiyi)
print(suiyi(250,38))    #(1,2)

 

  注意:

 

    1.函數的參數可以有多個,多個參數之間用逗號隔開

    2.匿名參數不管多復雜,只能寫一行,且邏輯結束后直接返回數據

    3.返回值和正常函數一樣,可以是任意數據類型

二丶sorted排序

lst = [16, 18, 32, 54, 12, 9]
lst.sort() # list的方法
print(lst)  #[9, 12, 16, 18, 32, 54]
#內置函數中提供了一個通用的排序方案, sorted()
s = sorted(lst)
print(s)    #[9, 12, 16, 18, 32, 54]

  語法:

    sorted(Iterable,key = None,reverse=False)

    Iterable:可迭代對象

    key:排序規則(排序函數),在sorted內部將可迭代對象的每一個元素傳遞給這個函數的參考值,根據函數運算的結果進行排序(根據權重進行排序)

    reverse:是否是倒序.True:倒序,False:正序

  sorted可以跟lambda組合使用

lst = [
    {'name':"迪迦奧特曼","age":48},
    {"name":"雷歐娜",'age':38},
    {"name":"賽文","age":39},
    {"name":"泰羅","age":32},
    {"name":"狗哥無敵","age":28}
    ]

ll = sorted(lst, key=lambda el: len(el['name']), reverse=False)
print(ll)

 

三丶filter()篩選函數

  語法:

    filter(function,Iterable)

    function:用來篩選的函數,在filter中會自動的把iterable中的元素傳遞給function.然后根據function返回的True或者False來判斷是否保留此項數據

    Iterable:可迭代對象

lst = ["張無忌", "張鐵林", "馬丹", "曹丹","馬大帥"]
def func(el):
    if el[0] == '':
        return False # 不想要的
    else:
        return True # 想要的
# 篩選,
# 將lst中的每一項傳遞給func, 所有返回True的都會保留, 所有返回False都會被過濾掉
f = filter(lambda el: el[0]!="", lst) 
print("__iter__" in dir(f)) # 判斷是否可以進行迭代
for e in f:
    print(e)

 

 

四丶map()映射函數

  語法:

    map(function,Iterable)

    可以對可迭代對象中的每一個元素進行映射,分別取執行function

# 計算列表中沒個數字的平方
#普通函數
lst = [1,4,7,2,5,8]
ll = []
for el in lst:
    ll.append(el**2)
print(ll)
#映射
def func(el):
    return el**2
m = map(lambda el: el**2, lst) # 把后面的可迭代對象中的每一個元素傳遞給function, 結果就是function的返回值
print(list(m))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM