溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

匿名函數(shù)與內(nèi)置函數(shù)結(jié)合使用 max,min,sorted,map,filter,reduce

發(fā)布時(shí)間:2020-07-02 19:14:06 來源:網(wǎng)絡(luò) 閱讀:238 作者:fushuanglin 欄目:編程語言

'''

1 匿名函數(shù):就是沒有名字的函數(shù)


2 為何要用:

    用于僅僅臨時(shí)使用一次的場(chǎng)景,沒有重復(fù)使用的需求


'''


def sum2(x,y):

    return x+y


# print(lambda x,y:x+y)

# print((lambda x,y:x+y)(1,2))


# 匿名函數(shù)的精髓就是沒有名字,為其綁定名字是沒有意義的

# f=lambda x,y:x+y

# print(f)

# print(f(1,2))


# 匿名函數(shù)與內(nèi)置函數(shù)結(jié)合使用

# max,min,sorted,map,filter,reduce



salaries={

    'egon':300000,

    'alex':100000000,

    'wupeiqi':10000,

    'yuanhao':2000

}

# 求薪資最高的那個(gè)人名:即比較的是value,但取結(jié)果是key

# res=max(salaries)

# print(res)


# 可以通過max函數(shù)的key參數(shù)來改變max函數(shù)的比較依據(jù),運(yùn)行原理:

# max函數(shù)會(huì)“for循環(huán)”出一個(gè)值,然后將該值傳給key指定的函數(shù)

# 調(diào)用key指定的函數(shù),將拿到的返回值當(dāng)作比較依據(jù)


# def func(name):

#     # 返回一個(gè)人的薪資

#     return salaries[name]

#

# res=max(salaries,key=func)  #'egon'

# print(res)


# 求最大值

# res=max(salaries,key=lambda name:salaries[name])  #'egon'

# print(res)


# 求最小值

# res=min(salaries,key=lambda name:salaries[name])  #'egon'

# print(res)



# sorted排序

# nums=[11,33,22,9,31]

# res=sorted(nums,reverse=True)

# print(nums)

# print(res)

# salaries={

#     'egon':300000,

#     'alex':100000000,

#     'wupeiqi':10000,

#     'yuanhao':2000

# }

# for v in salaries.values():

#     print(v)

# res=sorted(salaries.values())

# print(res)


# res=sorted(salaries,key=lambda name:salaries[name],reverse=True)

# print(res)


max,min,sorted(字典,key=func)

max,min.sorted for循環(huán)出字典的key,將key當(dāng)做func的參數(shù)


map,reduce,filter(匿名函數(shù),列表)

# map:把一個(gè)列表按照我們自定義的映射規(guī)則映射成一個(gè)新的列表

# names=['alex','lxx','wxx','yxx']

# res=map(lambda name: name + "dSB", names)

# print(list(res))


# filter: 從一個(gè)列表中過濾出符合我們過濾規(guī)則的值

# 運(yùn)行原理:相當(dāng)于for循環(huán)取出每一個(gè)人名,然后傳給匿名函數(shù),將調(diào)用匿名函數(shù)返回值為True的那個(gè)人名給留下來

# names=['alex_sb','lxx_sb','wxx_sb','egon','yxx']


# res=filter(lambda name:name.endswith('sb'),names)

# print(list(res))


# print([name for name in names if name.endswith('sb')])


# reduce: 把多個(gè)值合并成一個(gè)結(jié)果

from functools import reduce

l=['a','b','c','d']


# res=reduce(lambda x,y:x+y,l,'A')

#'A','a' => 'Aa'

#'Aa','b'=>'Aab'

#'Aab','c'=>'Aabc'

#'Aabc','d'=>'Aabcd'

# print(res)



# res=reduce(lambda x,y:x+y,l)

#'a','b'=>'ab'

# print(res)


# res=reduce(lambda x,y:x+y,range(1,101))

#1,2=>3

#3,3=>6

# print(res)


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI