最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

讓你Python到很爽的加速遞歸函數(shù)的裝飾器

 更新時間:2019年05月26日 09:44:11   作者:咖京學(xué)習(xí)  
這篇文章主要介紹了讓你Python到很爽的加速遞歸函數(shù)的裝飾器,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

今天我們會講到一個[裝飾器]

注記:鏈接“裝飾器”指Python3教程中的裝飾器教程。可以在這里快速了解什么是裝飾器。

@functools.lru_cache——進行函數(shù)執(zhí)行結(jié)果備忘,顯著提升遞歸函數(shù)執(zhí)行時間。

示例:尋找寶藏。在一個嵌套元組tuple或列表list中尋找元素'Gold Coin'

import time
from functools import lru_cache
def find_treasure(box):
 for item in box:
  if isinstance(item, (tuple, list)):
   find_treasure(item)
  elif item == 'Gold Coin':
   print('Find the treasure!')
   return True
start = time.perf_counter()
find_treasure(('sth', 'sth', 'sth',
    ('Bad Coin', 'normal coin', 'fish', 'sth', 'any sth'),
    ('Bad Coin', 'normal coin', 'fish', 'sth', 'any sth'),
    'Gold Coin', ))
end = time.perf_counter()
run_time_without_cache = end - start
print('在沒有Cache的情況下,運行花費了{} s。'.format(run_time_without_cache))
@lru_cache()
def find_treasure_quickly(box):
 for item in box:
  if isinstance(item, (tuple, list)):
   find_treasure(item)
  elif item == 'Gold Coin':
   print('Find the treasure!')
   return True
start = time.perf_counter()
find_treasure_quickly(('sth', 'sth', 'sth',
      ('Bad Coin', 'normal coin', 'fish', 'sth', 'any sth'),
      ('Bad Coin', 'normal coin', 'fish', 'sth', 'any sth'),
      'Gold Coin', ))
end = time.perf_counter()
run_time_with_cache = end - start
print('在有Cache的情況下,運行花費了{} s。'.format(run_time_with_cache))
print('有Cache比沒Cache快{} s。'.format(float(run_time_without_cache-run_time_with_cache)))

最終輸出

Find the treasure!
在沒有Cache的情況下,運行花費了0.0002182829999810565 s。
Find the treasure!
在有Cache的情況下,運行花費了0.00011638000000857573 s。
有Cache比沒Cache快0.00010190299997248076 s。

注記:運行這個示例時我的電腦配置如下

CPU:AMD Ryzen 5 2600
RAM:Kingston HyperX 8Gigabytes 2666

約使用7個月。

這個裝飾器可以在函數(shù)運行時記錄它的輸入值與運行結(jié)果。當(dāng)元組('Bad Coin', 'normal coin', 'fish', 'sth', 'any sth')出現(xiàn)第二次時,加了這個裝飾器的函數(shù)find_the_treasure_quickly不會再次在遞歸時對這個元組進行查找,而是直接在“備忘錄”中找到運行結(jié)果并返回!

總結(jié)

以上所述是小編給大家介紹的讓你Python到很爽的加速遞歸函數(shù)的裝飾器,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • python字符串切片及常用方法示例詳解

    python字符串切片及常用方法示例詳解

    這篇文章主要介紹了python字符串切片及常用方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • python3讀取文件指定行的三種方法

    python3讀取文件指定行的三種方法

    考慮到深度學(xué)習(xí)領(lǐng)域中的數(shù)據(jù)規(guī)模一般都比較大,尤其是訓(xùn)練集,這個限制條件對應(yīng)到實際編程中就意味著,我們很有可能無法將整個數(shù)據(jù)文件的內(nèi)容全部都加載到內(nèi)存中。那么就需要一些特殊的處理方式,本文將要介紹的是從文件中只讀取特定行的內(nèi)容的3種解決方案。
    2021-05-05
  • python使用Flask操作mysql實現(xiàn)登錄功能

    python使用Flask操作mysql實現(xiàn)登錄功能

    這篇文章主要介紹了python使用Flask操作mysql實現(xiàn)登錄功能,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-05-05
  • 使用Python的turtle模塊畫圖的方法

    使用Python的turtle模塊畫圖的方法

    這篇文章主要介紹了使用Python的turtle模塊畫圖的方法,涉及turtle簡介,運動命令,畫筆控制命令的分享,以及具體操作的步驟,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Python 多進程、多線程效率對比

    Python 多進程、多線程效率對比

    這篇文章主要介紹了Python 多進程、多線程的效率對比,幫助大家選擇適合的技術(shù),感興趣的朋友可以了解下
    2020-11-11
  • Python爬蟲 批量爬取下載抖音視頻代碼實例

    Python爬蟲 批量爬取下載抖音視頻代碼實例

    這篇文章主要介紹了Python爬蟲 批量爬取下載抖音視頻代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 詳談python read readline readlines的區(qū)別

    詳談python read readline readlines的區(qū)別

    下面小編就為大家?guī)硪黄斦刾ython read readline readlines的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 一文詳解如何在Matplotlib中更改圖例字體大小

    一文詳解如何在Matplotlib中更改圖例字體大小

    在我們處理數(shù)據(jù)的時候,需要對大量的數(shù)據(jù)進行繪圖,就免不了要使用到Matplotlib,下面這篇文章主要給大家介紹了關(guān)于如何在Matplotlib中更改圖例字體大小的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • 以一段代碼為實例快速入門Python2.7

    以一段代碼為實例快速入門Python2.7

    這篇文章主要以一段代碼為實例、簡單介紹了Python2.7的各種函數(shù)和方法以及語句,來自網(wǎng)絡(luò)上火爆的在線Python教程網(wǎng)站learnxinyminutes.com,需要的朋友可以參考下
    2015-03-03
  • pyecharts繪制儀表盤的實現(xiàn)

    pyecharts繪制儀表盤的實現(xiàn)

    有時候大家想把自己繪制好的可視化圖片集中到一個頁面,整合成儀表盤,集中給同事或者他人來呈現(xiàn),但又不知道該怎么做,今天小編就來分享一個pyecharts繪制儀表盤的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2021-06-06

最新評論

德阳市| 遵化市| 富阳市| 太仆寺旗| 开原市| 北碚区| 乐都县| 齐齐哈尔市| 古蔺县| 莆田市| 黄大仙区| 英吉沙县| 林州市| 阜南县| 乌恰县| 收藏| 深水埗区| 九龙县| 开封市| 平凉市| 富宁县| 那曲县| 台东县| 顺昌县| 东至县| 洪湖市| 岑溪市| 宁晋县| 海宁市| 平罗县| 绥芬河市| 漳州市| 铁力市| 弥渡县| 高青县| 阜阳市| 游戏| 长子县| 乐东| 海兴县| 蒙山县|