[Python]小甲魚Python視頻第021課(函數:lambda表達式)課後題及參考解答
阿新 • • 發佈:2019-03-09
mar 表達式 rep ini 我希望 利用 lam repeat python
# -*- coding: utf-8 -*- """ Created on Thu Mar 7 17:53:49 2019 @author: Administrator """ """ 測試題: 0. 請使用lambda表達式將下邊函數轉變為匿名函數? def fun_A(x, y=3): return x * y fun_A = lambda x,y=3 : x*y; 1. 請將下邊的匿名函數轉變為普通的屌絲函數? lambda x : x if x % 2 else None def fun_1(x): if x%2: return x; else: return None; 2. 感受一下使用匿名函數後給你的編程生活帶來的變化? a.不用特別為想函數名字而費腦筋了 3.你可以利用filter()和lambda表達式快速求出100以內所有3的倍數嗎? 4. 還記得列表推導式嗎?完全可以使用列表推導式代替filter()和lambda組合,你可以做到嗎? 5. 還記得zip嗎?使用zip會將兩數以元祖的形式綁定在一塊,例如: >>> list(zip([1, 3, 5, 7, 9], [2, 4, 6, 8, 10])) [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)] 但如果我希望打包的形式是靈活多變的列表而不是元祖 (希望是[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]這種形式), 你能做到嗎?(采用map和lambda表達式) 6. 請目測以下表達式會打印什麽? def make_repeat(n): return lambda s : s * n double = make_repeat(2) print(double(8)) print(double(‘FishC‘)) 16 FishCFishC """ #測試題3 is3x = lambda x :True if x%3 == 0 else False; result_list = filter(is3x,range(100)); print(list(result_list)); #測試題4. result_list = [ x for x in range(100) if x%3 == 0 ]; print(result_list); #測試題5. collect_func = lambda x,y : [x,y]; list1 = [ 1, 3, 5, 7, 9 ]; list2 = [ 2, 4, 6, 8, 10 ]; # map(func, *iterables) iterables可以是多個參數 listZip = list(map(collect_func,list1,list2)); print(listZip);
[Python]小甲魚Python視頻第021課(函數:lambda表達式)課後題及參考解答