日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

多迭代和單迭代

range()和zip()、map()、filter()稍有不同。range()支持多迭代、而后三者只支持單迭代。

何為單迭代、何為多迭代?多迭代的意思是同一個對象上可以有多個互不影響的獨立迭代器,各迭代器自己記住自己的迭代位置(狀態信息)。單迭代的意思是同一個對象上只能有一個迭代器,即使創建了多個迭代器,它們也是串聯起來互相影響的。

下面是range()的多迭代特性:

python基礎知識分享:何為單迭代、何為多迭代?

 

下面的zip、map、filter單迭代的特性:

python基礎知識分享:何為單迭代、何為多迭代?

 

之所以range()支持多迭代,而zip/map/filter都只支持單迭代,是因為:

  1. zip/map/filter返回的是自身的迭代器,它們的返回結果自身同時都實現了__iter__()__next__()兩個方法,所以無論從它們的返回結果上產生多少個可迭代對象,操作的都是它們的對象自身,從而只支持單迭代
  2. range返回的不是自身迭代器,它的返回結果只實現了__iter__而沒有實現__next__,所以需要通過iter()來生成可迭代對象(迭代器)。無論使用iter()從該返回結果產生多少個可迭代對象,都是互相獨立的可迭代對象,從而支持多迭代

所以一般來說,不是自身迭代器的對象支持多個迭代器,而自身是自身迭代器的對象只支持單個迭代器。

常見的多迭代有range()和那些支持迭代的內置類型,比如字符串、列表、元組等。例如字符串的多迭代:

>>> S = "abc"
>>> for x in S:
... for y in S:
... print(x + y, end=" ")
aa ab ac ba bb bc ca cb cc 

覺得文章還不錯的話不妨收藏起來慢慢看,有任何建議或看法歡迎大家在評論區分享討論!

分享到:
標簽:python
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定