色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python生成器的使用方法

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-03 15:41 ? 次閱讀

舉一個例子,編寫一個函數計算一串數字里所有偶數的個數,其實是很簡單的問題,但是有些人是用生成器這么寫的:

  1. In[66]:def f1(x):

  2. ....:return sum(c in'02468'for c in str(x))

  3. ....:

  4. In[68]: x = int('1234567890'*50)

  5. In[69]:%timeit f1(x)

  6. 10000 loops, best of 5:52.2μs per loop

生成器這么用其實是速度最慢的一種做法,花費了52微秒。我們來看看如果我改成列表解析式會怎么樣:

  1. In[67]:def f2(x):

  2. ....:return sum([c in'02468'for c in str(x)])

  3. In[68]: x = int('1234567890'*50)

  1. In[70]:%timeit f2(x)

  2. 10000 loops, best of 5:40.5μs per loop

你看,這個 加速非常地明顯,僅花費了40.5微秒

而且還能進一步改進, 如果我們改變之前定義的f2,讓它在列表解析式后判斷數字是否為偶數,是偶數才會成為最終生成的列表中的一員,這樣有另一個加速:

  1. In[71]:def f3(x):

  2. ....:return sum([Truefor c in str(x)if c in'02468'])

  3. ....:

  4. In[72]:%timeit f3(x)

  5. 10000 loops, best of 5:34.9μs per loop

34.9微秒,Perfect! 不僅如此,還能繼續加速!sum對于整數有一個快速路徑,但是這個快速路徑只激活類型為int. bool不行,因此我們把True改成1,能更再加一次速!

  1. In[73]:def f4(x):

  2. ....:return sum([1for c in str(x)if c in'02468'])

  3. ....:

  4. In[74]:%timeit f4(x)

  5. 10000 loops, best of 5:33.3μs per loop

又快了,33.3微秒!怎么樣,小伙伴們學到了嗎

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62573
  • 生成器
    +關注

    關注

    7

    文章

    315

    瀏覽量

    21003
  • python
    +關注

    關注

    56

    文章

    4792

    瀏覽量

    84630
收藏 人收藏

    評論

    相關推薦

    Minitab 交互式表格生成器

    生成器
    MinitabUG
    發布于 :2024年04月03日 15:58:54

    如何去使用生成器

    生成器的工作原理是什么?如何去使用生成器呢?
    發表于 10-25 08:44

    python生成器

    python生成器1. 什么是生成器?生成器(英文名 Generator ),是一個可以像迭代器那樣使用for循環來獲取元素的函數。生成器
    發表于 02-24 15:56

    pim卡資料生成器

    pim卡資料生成器
    發表于 11-22 23:23 ?6次下載

    自制酸奶生成器

    自制酸奶生成器
    發表于 04-23 11:48 ?934次閱讀
    自制酸奶<b class='flag-5'>生成器</b>

    LED段碼生成器

    本文提供的LED段碼生成器,希望對你的學習有所幫助!
    發表于 06-03 15:19 ?98次下載

    代碼生成器的應用

    jeesite框架代碼生成器,可以很方便的生成代碼,挺不錯的。
    發表于 01-14 15:19 ?0次下載

    數碼管代碼生成器

    數碼管代碼生成器,迅速生成數碼管的相應代碼
    發表于 04-25 10:54 ?40次下載

    STM32庫函數代碼自動生成器正式版

    STM32庫函數代碼自動生成器正式版 STM32庫函數代碼自動生成器正式版
    發表于 07-25 18:52 ?0次下載

    AN-113:精密坡道生成器

    AN-113:精密坡道生成器
    發表于 05-16 12:04 ?6次下載
    AN-113:精密坡道<b class='flag-5'>生成器</b>

    python生成器是什么

    python生成器 1. 什么是生成器? 生成器(英文名 Generator ),是一個可以像迭代器那樣使用for循環來獲取元素的函數。 生成器
    的頭像 發表于 02-24 15:53 ?3656次閱讀

    Arduino贊美生成器

    電子發燒友網站提供《Arduino贊美生成器.zip》資料免費下載
    發表于 11-09 14:22 ?1次下載
    Arduino贊美<b class='flag-5'>生成器</b>

    通用RFID生成器

    通用RFID生成器資料分享
    發表于 02-10 15:35 ?1次下載

    Python中的生成器是什么?它們的效率和可用性如何?

    Python 是一種以靈活性和多功能性著稱的語言,它提供了一種稱為生成器的強大功能。
    發表于 07-19 14:33 ?487次閱讀

    TSMaster報文發送的信號生成器操作說明

    信號生成器功能是TSMaster分析中的報文發送模塊。信號生成器用于發送和配置每個CAN/LIN信號的值變化行為,簡而言之,這是一個可以控制和調整CAN/LIN信號值的功能。我們可選擇的信號生成器
    的頭像 發表于 12-23 08:21 ?993次閱讀
    TSMaster報文發送的信號<b class='flag-5'>生成器</b>操作說明
    主站蜘蛛池模板: 野花日本大全免费观看3中文版| 最近中文字幕在线中文高清版| 久欠热视频精品首页| 贵妃高h荡肉呻吟np杨玉环| 中文字幕亚洲无限码| 午夜dj免费中文字幕| 美女漏bb| 久久综合伊人 magnet| 久久99热在线观看7| 国产一区二区三区内射高清 | 迈开腿让我看下你的小草莓声音| 国产白丝JK被疯狂输出视频| 爱爱好爽好大好紧视频| A级毛片无码久久精品免费| 一攻多受高h大总攻| 亚洲一区日韩一区欧美一区a| 亚洲 欧美 另类 中文 在线| 涩涩游戏盒| 日韩欧美中文字幕在线| 欧洲最大无人区免费高清完整版| 男男肉肉互插腐文| 欧美 国产 日产 韩国 在线| 欧美日韩精品一区二区三区高清视频 | 嫩草欧美曰韩国产大片| 久久久精品日本一区二区三区| 久久亚洲国产成人影院| 免费被靠视频动漫| 强行撕开衣服捏胸黄文| 丝袜美女被艹| 一道本无吗d d在线播放| 4480yy午夜私人影院| AV国产乱码一区二区三视频| 俄罗斯18xv在线观看| 加勒比一本之道高清视频在线观看 | 一本道的mv中文字幕| 最新男同鸭子ktv| good神马电影伦理午夜| 国产剧情福利AV一区二区| 久久视频精品3线视频在线观看| 欧美18videosex初次| 天堂色|