摘要:高階函數實參是一個函數名函數的返回值是一個函數傳遞的參數包含函數名。內置高階函數函數函數接收兩個參數一個是函數一個是序列將傳入的函數依次作用到序列的每個元素并把結果作為新的返回。
高階函數
實參是一個函數名
函數的返回值是一個函數
print(abs(-10)) f = abs print(f(-10)) #傳遞的參數包含函數名。 def myfun(x,y,fun): return f(x),f(y) print(myfun(-10,23,abs)) 10 10 (10, 23)python內置高階函數 map()函數
map() 函數接收兩個參數,一個是函數,一個是序列, map 將傳入的函數依次作用到序列的每個元素,并把結果作為新的 list 返回。
#隨機生成一個長度為10,元素在2~7之間的列表 #對列表里所有元素求階乘 import random lee= [random.randint(2,7) for i in range(10)] print(lee) def mult(x): rs=1 for i in range(1,x+1): rs=i*rs return rs print(map(mult,lee)) print(list(map(mult,lee))) [2, 6, 5, 3, 3, 3, 3, 5, 4, 6]reduce()函數
把當前輸出作為下一次運算的輸入
python2中為內置函數
python3需要導入,from functools import reduce
#求10的階乘 from functools import reduce def multi(x, y): return x * y # [1,2,3] ---> multi(multi(1,2),3) c = reduce(multi, range(1, 11)) print(c)filter()函數
filter() 也接收一個函數和一個序列。和 map() 不同的時,filter() 把傳入的函數依次作用于每個元素,然后根據返回值是 True還是 False 決定保留還是丟棄該元素。
#求0~10之間的奇數 def isodd(x): return x % 2 != 0 # [i for i in range(100,111) if i %2 !=0] d = filter(isodd, range(0, 11)) print(d) print(list(d))匿名函數[1, 3, 5, 7, 9]
匿名函數定義規則
lambda 形參:返回值
from functools import reduce print(reduce(lambda x,y:x+y,[1,2,3,4,5])) 15列表里嵌套列表進行排序
d = { "001":{ "name":"apple", "count":124, "price":1000 }, "002":{ "name":"banana", "count":8, "price":1024 } } #列表里嵌套元組 print(d.items()) #按key值排序 print(sorted(d.items(),key=lambda x:x[1]["count"])) print(sorted(d.items(),key=lambda x:x[1]["price"])) #itemgetter會忽略key值 print(sorted(d.values(),key=itemgetter("count"))) print(sorted(d.values(),key=itemgetter("price"))) dict_items([("001", {"name": "apple", "count": 124, "price": 1000}), ("002", {"name": "banana", "count": 8, "price": 1024})]) [("002", {"name": "banana", "count": 8, "price": 1024}), ("001", {"name": "apple", "count": 124, "price": 1000})] [("001", {"name": "apple", "count": 124, "price": 1000}), ("002", {"name": "banana", "count": 8, "price": 1024})] [{"name": "banana", "count": 8, "price": 1024}, {"name": "apple", "count": 124, "price": 1000}] [{"name": "apple", "count": 124, "price": 1000}, {"name": "banana", "count": 8, "price": 1024}]
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42249.html
什么是裝飾器? 裝飾器就是用來裝飾函數。 想要增強原有函數的功能 但不希望修改原有函數的定義 在代碼運行期間動態增加功能的方式 函數嵌套函數 調用方式:原函數 = 外層函數(原函數名)原函數 def desc(fun): def add_info(): print(happy today) fun() print(westos_linux...
迭代 可以通過 for 循環來遍歷 list 或 tuple,這種遍歷我們稱為迭代(Iteration)只要是可迭代對象,都可以迭代,比如字典默認情況下,字典迭代的是key值如何讓判斷一個類型是否可迭代 from collections import Iterable #導入collections模塊的Iterable類型判斷方法 print(isinstance({abc:1},Itera...
摘要:和列表里提供了方法,其他數據類型不能用可以對任何可迭代對象排序方法支持原地排序,變量排序后,變量本身改變方法返回一個新的列表,并不改變原變量的內容不改變原有列表次序默認和方法由小到大排序,時,從大到小排序字典排序商品名稱,數 li.sort()和sorted() 列表里提供了sort方法,其他數據類型不能用 sorted可以對任何可迭代對象排序 sort方法支持原地排序,變量排序后...
摘要:函數的定義范例總結無參函數名快注釋函數體定義函數,并不會執行函數體里面的內容調用函數的過程函數里面嵌套函數調用外層函數時,內層函數不會執行變量參數定義函數時的變量,稱做形參,可以任意命名真實的數據信息,調用函數時傳遞的參數,稱為實參是形參是 函數的定義 范例 def print(self, *args, sep= , end=n, file=None): 總結 無參 def 函數名...
摘要:什么是包為了組織好模塊,會將多個模塊分為包。處理包也是相當方便的。簡單來說,包就是文件夾,但該文件夾下必須存在文件。最簡單的情況下,只需要一個空的文件即可。當然它也可以執行包的初始化代碼包底下也能包含包,這和文件夾一樣,還是比較好理解的。 什么是包? 為了組織好模塊,會將多個模塊分為包。Python 處理包也是相當方便的。簡單來說,包就是文件夾,但該文件夾下必須存在 __init__....
閱讀 3019·2021-11-24 10:21
閱讀 1588·2021-10-11 10:57
閱讀 2804·2021-09-22 15:24
閱讀 2659·2021-09-22 14:58
閱讀 2331·2019-08-30 13:16
閱讀 3478·2019-08-29 13:05
閱讀 3411·2019-08-29 12:14
閱讀 3441·2019-08-27 10:55