色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美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>操作說明
    主站蜘蛛池模板: 日韩精品无码视频一区二区蜜桃| 曼谷av女郎| 九九精品视频一区二区三区| 偷窥自拍性综合图区| 爱穿丝袜的麻麻3d漫画acg| 免费果冻传媒2021在线看| 伊人AV一区二区三区夜色撩人| 国产线精品视频在线观看| 午夜福利小视频400| 国产精品色无码AV在线观看| 色爰情人网站| 国产精品综合AV一区二区国产馆| 午夜精品久久久久久久爽牛战 | 97视频在线播放| 美女扒开尿口直播| 99久久精品一区二区三区| 女人和男人插曲视频大全| FREESEXVIDEO 性老少配| 欧洲亚洲精品A片久久99果冻| zxfuli午夜福利在线| 日韩 国产 中文 无码| 国产精品99久久久精品无码| 亚洲 欧美 清纯 校园 另类| 韩国三级久久精品| 在镜头里被CAO翻了H| 毛片手机在线| 吃寂寞寡妇的奶| 性奴公司 警花| 久久免费精品国产72精品剧情| 97国产精品视频在线观看| 日本动漫henta videos| 国产精品色无码AV在线观看| 野花韩国视频中文播放| 免费在线伦理片| 国产不卡无码高清视频| 野花韩国高清完整版在线观看5| 蜜臀色欲AV无人A片一区 | YELLOW视频在线观看大全| 肉色欧美久久久久久久蜜桃| 国产午夜福利100集发布| 原神美女被超污app|