中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python函數式編程實例介紹

發布時間:2021-08-16 17:28:33 來源:億速云 閱讀:123 作者:chen 欄目:編程語言

這篇文章主要講解了“python函數式編程實例介紹”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“python函數式編程實例介紹”吧!

  函數式編程:是指代碼中每一塊都是不可變的,都由純函數的形式組成。這里的純函數,是指函數本身相互獨立、互不影響,對于相同的輸入,總會有相同的輸出。并且允許把函數本身作為參數傳入另一個函數,還允許返回一個函數。

  例如實現列表元素的二次方:

  def multiply_2(list):

  new_list=[]

  for i in list:

  new_list.append(item**2)

  return new_list

  # 函數式編程的優點,主要在于其純函數和不可變的特性使程序更加健壯,易于調試和測試;缺點主要在于限制多,難寫。

  純粹的函數式編程語言(比如 Scala),其編寫的函數中是沒有變量的,因此可以保證,只要輸入是確定的,輸出就是確定的;而允許使用變量的程序設計語言,由于函數內部的變量狀態不確定,同樣的輸入,可能得到不同的輸出。

  Python 允許使用變量,所以它并不是一門純函數式編程語言。Python 僅對函數式編程提供了部分支持,主要包括 map()、filter() 和 reduce() 這 3 個函數,它們通常都結合 lambda 匿名函數一起使用。

  python map()函數

  基本語法格式:

  map(function,iterable)

  # function 參數表示要傳入一個函數,其可以是內置函數、自定義函數或者 lambda 匿名函數;iterable 表示一個或多個可迭代對象,可以是列表、字符串等

  函數的功能:

  對可迭代對象的每一個元素,都調用傳入的函數,并返回一個map對象

  注意的是該map對象不能直接打印出來,需要通過for循環遍歷或者將其通過list()轉化為list對象才能顯示出來

  示例:

  list_demo=[6,7,8]

  new_list=map(lambda x:x**2,list_demo)

  print(list(new_list))

  map() 函數是直接由用 C 語言寫的,運行時不需要通過 Python 解釋器間接調用,并且內部做了諸多優化,所以相比其他方法,此方法的運行效率最高。

  python filter()函數

  基本語法格式:鄭州人流醫院哪家好 http://mobile.zhongyuan120.com/

  filter(function,iterable)

  #功能是對 iterable 中的每個元素,都使用 function 函數判斷,并返回 True 或者 False,最后將返回 True 的元素組成一個新的可遍歷的集合。

  示例:

  list_demo=[6,7,8]

  new_list=filter(lambda x:x%2==0,list_demo)

  print(list(new_list))

  python reduce()函數

  基本語法格式:

  reduce(function,iterable)

  # 其中,function 規定必須是一個包含 2 個參數的函數;iterable 表示可迭代對象。

  reduce() 函數通常用來對一個集合做一些累積操作.

  使用之前需要導入functools模塊

  示例:

  # 計算列表乘積

  import functools

  list_demo=[6,7,8]

  result=functools.reduce(lambda x,y:x*y,list_demo)

  print(result)

  綜合來看:

  當對集合中的元素進行一些操作時,如果操作非常簡單,比如相加、累積這種,那么應該優先考慮使用 map()、filter()、reduce() 實現。另外,在數據量非常多的情況下(比如機器學習的應用),一般更傾向于函數式編程的表示,因為效率更高。

感謝各位的閱讀,以上就是“python函數式編程實例介紹”的內容了,經過本文的學習后,相信大家對python函數式編程實例介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

哈尔滨市| 乌兰察布市| 永宁县| 博白县| 吐鲁番市| 延吉市| 墨脱县| 阆中市| 图片| 墨江| 洛川县| 上蔡县| 阜城县| 高陵县| 平昌县| 濮阳市| 汪清县| 得荣县| 安泽县| 营山县| 鹿泉市| 安阳县| 乌鲁木齐县| 临清市| 浪卡子县| 拜城县| 柘荣县| 新乡市| 莱阳市| 台山市| 当涂县| 康平县| 景谷| 梁河县| 灵璧县| 石景山区| 奎屯市| 龙川县| 康保县| 萨迦县| 冀州市|