058 匿名函數

1、匿名函數

匿名須要關鍵字lambda
使用方式:lambda 參數:<代碼塊>函數

匿名函數通常不單獨使用,和 filter()/map()/sorted()/min()/max()/列表的sort()內置方法聯用code

匿名函數:列表類型內置sort()方法

salary_dict = {
    'xc': 12300,
    'yx': 10000,
    'll': 2000,
}

# 列表內置的sort()方法
salary_list = list(salary_dict.items()) # 先轉換成列表,內部的鍵值對會變成元祖
print("排序以前",salary_list)
# sort是在列表內部作排序
salary_list.sort(key=lambda i:i[1]) # 使用匿名函數,根據列表內元祖的第二個參數作排序條件進行排序
print("排序以後",salary_list)

排序以前 [('xc', 12300), ('yx', 10000), ('ll', 2000)]
排序以後 [('ll', 2000), ('yx', 10000), ('xc', 12300)]排序

匿名函數:sorted()方法

salary_dict = {
    'xc': 12300,
    'yx': 10000,
    'll': 2000,
}

# sorted方法
salary_list = list(salary_dict.items()) # 先轉換成列表,內部的鍵值對會變成元祖
print("排序以前",salary_list)
new_salary_list = sorted(salary_list, key=lambda i: i[1])  # 從新建立一個新的列表進行排序
print("排序以後",new_salary_list)

匿名函數:max()/min()方法

salary_dict = {
    'xc': 12300,
    'yx': 10000,
    'll': 2000,
}

salary_list = list(salary_dict.items()) # 先轉換成列表,內部的鍵值對會變成元祖
print("最大值",max(salary_list,key=lambda i:i[1]))     # 使用匿名函數作排序條件
print("最大值",min(salary_list,key=lambda i:i[1]))

匿名函數:filter/map方法

salary_dict = {
    'xc': 12300,
    'yx': 10000,
    'll': 2000,
}

# filter/map方法
salary_list = list(salary_dict.items()) # 先轉換成列表,內部的鍵值對會變成元祖
# filter方法,只須要知足過濾條件的(小於5000)
print(list(filter(lambda i: i[1] < 5000, salary_list))) # 使用匿名函數作篩選過濾的條件
# map方法,每一個人加2000
print(list(map(lambda i: {i[0]:i[1] + 2000}, salary_list)))    # 使用匿名函數作映射的條件
相關文章
相關標籤/搜索