国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python 基礎(chǔ) - 迭代器 / 迭代器對象 / 可迭代對象 / range函數(shù)

這篇具有很好參考價值的文章主要介紹了Python 基礎(chǔ) - 迭代器 / 迭代器對象 / 可迭代對象 / range函數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1. 迭代器

2.迭代器對象

3. 可迭代對象

4. range函數(shù)


1. 迭代器

當(dāng)類中定義了__iter__和 __next__兩個方法

  • __iter__: 返回對象本身,即self
  • __next__: 返回下一個數(shù)據(jù),如果沒有數(shù)據(jù),則拋出StopIteration異常
# 創(chuàng)建迭代器
class IT(object):
    def __init__(self):
        self.num = 100

    def __iter__(self):
        return self

    def __next__(self):
        self.num -= 1
        if self.num == -1:
            raise StopIteration()
        return self.num

2.迭代器對象

通過迭代器類實例化創(chuàng)建的迭代器對象

  • 可以通過 obj.__next__() 或 python內(nèi)置函數(shù)next(obj) 來獲取下一個數(shù)據(jù)
  • 還支持對迭代器對象進行for循環(huán)【注意:for循環(huán)在內(nèi)部執(zhí)行時,先執(zhí)行__iter__()方法,獲取一個迭代器對象,然后不斷執(zhí)行__next__取值
# 實例化迭代器對象
it = IT()
# 使用 __next__() 來獲取下一個數(shù)據(jù)
print(it.__next__())    # 9
print(it.__next__())    # 8
# 使用 next(obj) 來獲取下一個數(shù)據(jù)
print(next(it))         # 7
print(next(it))         # 6
# 使用 for 循環(huán)來遍歷數(shù)據(jù)
for item in it:
    print(item, end=" ")   # 5 4 3 2 1 0

3. 可迭代對象

如果一個類中有__iter__方法并且返回一個迭代器對象,則稱以這個類創(chuàng)建的對象叫可迭代對象。

  • 可迭代對象是可以用for來進行循環(huán):與上述對迭代器對象的for循環(huán)步驟相同,先在循環(huán)內(nèi)部先執(zhí)行__iter__方法,獲取迭代器對象,然后再執(zhí)行迭代器對象的__next__函數(shù),逐步取值。
  • List,tuple, dict和set都是可迭代對象
class IT2(object):
    def __iter__(self):
        return IT()     # 返回迭代器對象
    
it2 = IT2()    # 生成可迭代對象
for item in IT2():
    print(item, end=" ")    # 9 8 7 6 5 4 3 2 1 0 

4. range函數(shù)

在編程中常見的 range()函數(shù),如 v1=range(100) 返回的是一個可迭代對象v1,因此文章來源地址http://www.zghlxwxcb.cn/news/detail-426822.html

  • v2 = v1.__iter__獲取的是迭代器對象,每執(zhí)行一次 next(v2) 就會進行逐步取值
  • 或者用for循環(huán)進行遍歷取值
v1 = range(5)
print(isinstance(v1, Iterable)) # True,返回的是可迭代對象

# 1. 使用for循環(huán)遍歷
for v in v1:
    print(v, end=" ")   # 0 1 2 3 4 0

# 2. 先通過__iter__()獲取迭代器對象,然后使用next獲取到對應(yīng)的值
v1_iterator = v1.__iter__() 
print(next(v1_iterator))    # 0
print(next(v1_iterator))    # 1
print(next(v1_iterator))    # 2
print(next(v1_iterator))    # 3

到了這里,關(guān)于Python 基礎(chǔ) - 迭代器 / 迭代器對象 / 可迭代對象 / range函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Python中的range函數(shù)

    Python中的range函數(shù)

    哈嘍兄弟們!今天我們聊聊Python中很重要的range對象?。ū疚恼禄赑ython3環(huán)境,Python2環(huán)境下的range會有所不同,但并不影響我們使用) 每一個Python初學(xué)者都一定在開始學(xué)Python不久就一定會遇到”range函數(shù)“,大家都把他叫做“range函數(shù)”,是因為我們在用它的時候像調(diào)用函數(shù)

    2024年02月02日
    瀏覽(21)
  • Python零基礎(chǔ)入門(九)——函數(shù),類和對象

    Python零基礎(chǔ)入門(九)——函數(shù),類和對象

    個人簡介:機電專業(yè)在讀研究生,CSDN內(nèi)容合伙人,博主個人首頁 Python入門專欄:《Python入門》歡迎閱讀,一起進步!?????? 碼字不易,如果覺得文章不錯或能幫助到你學(xué)習(xí),可以點贊??收藏??評論??+關(guān)注哦!?????? 歡迎來到 Python 零基礎(chǔ)入門系列的第九篇!前面的文

    2024年02月15日
    瀏覽(20)
  • Python:可迭代對象與迭代器

    相關(guān)閱讀 Python https://blog.csdn.net/weixin_45791458/category_12403403.html?spm=1001.2014.3001.5482 ? ? ? ? 根據(jù)Python官方文檔,可迭代對象(iterable)是“一種能夠逐個返回其成員項的對象”。具體來說,這種對象要么定義了一個返回迭代器(iterator)的魔術(shù)方法__iter__(),要么定義了魔術(shù)方法__geti

    2024年04月29日
    瀏覽(17)
  • python入門基礎(chǔ)(13)--類、對象、全局函數(shù),類內(nèi)部調(diào)用

    python入門基礎(chǔ)(13)--類、對象、全局函數(shù),類內(nèi)部調(diào)用

    ? ? 面向過程的編程語言,如C語言,所使用的數(shù)據(jù)和函數(shù)之間是沒有任何直接聯(lián)系的,它們之間是通過函數(shù)調(diào)用提供參數(shù)的形式將數(shù)據(jù)傳入函數(shù)進行處理。 但可能因為錯誤的傳遞參數(shù)、錯誤地修改了數(shù)據(jù)而導(dǎo)致程序出錯,甚至是崩潰。當(dāng)需要修改或維護程序時要從程序提供

    2024年02月08日
    瀏覽(21)
  • Python中可迭代對象、迭代器詳解

    Python中可迭代對象、迭代器詳解

    在Python中,有這兩個概念容易讓人混淆。第一個是可迭代對象(Iterable),第二個是迭代器(Iterator),第三個是生成器(Generator),這里暫且不談生成器。 可迭代對象 列表、元組、字符串、字典等都是可迭代對象,可以使用for循環(huán)遍歷出所有元素的都可以稱為可迭代對象(

    2024年02月02日
    瀏覽(20)
  • Python中range() 函數(shù)的使用介紹

    Python中的range()函數(shù)是一個非常實用的Python內(nèi)置函數(shù),用于生成整數(shù)序列,常用于循環(huán)操作和列表生成。在Python 3中,range()函數(shù)的返回值是一個迭代器對象。本文將詳細介紹Python中range()函數(shù)的用法、參數(shù)和示例代碼,以便更好地理解和掌握它的使用。 1.range()函數(shù)的用法 Pytho

    2024年02月11日
    瀏覽(18)
  • 10天玩轉(zhuǎn)Python第6天:python 函數(shù)和面向?qū)ο蠡A(chǔ) 全面詳解與代碼示例

    10天玩轉(zhuǎn)Python第6天:python 函數(shù)和面向?qū)ο蠡A(chǔ) 全面詳解與代碼示例

    不定長參數(shù)補充-函數(shù)調(diào)用時的拆包 匿名函數(shù) 語法 代碼 練習(xí) 匿名函數(shù)作為函數(shù)的參數(shù) - 列表中的字典排序 字符串比大小 基本的介紹 面向過程 關(guān)注的是 具體步驟的實現(xiàn), 所有的功能都自己書寫 親力親為 定義一個個函數(shù), 最終按照順序調(diào)用函數(shù) 面向?qū)ο?關(guān)注的是結(jié)果, 誰

    2024年02月04日
    瀏覽(24)
  • 【python學(xué)習(xí)】基礎(chǔ)篇-編碼與解碼 decode()方法 將對象元素打包成元組zip()函數(shù)

    在 Python 中使用字符串對象的encode()方法來實現(xiàn)編碼。 encode0 方法是字符串對象內(nèi)置的一個實現(xiàn)方法用于實現(xiàn)編碼操作。語法格式如下: str.encode([encoding[,errors]]) 解碼字符串則需要使用 bytes 對象的 decode0 方法來實現(xiàn)。 bytes.decode([encoding[,errors]]) 參數(shù)encoding 表示要進行編碼的字符

    2023年04月19日
    瀏覽(29)
  • 【Python 4】列表與元組slice切片 迭代 列表生成式 生成器generator 迭代器Iterator對象

    在Python中,代碼不是越多越好,而是越少越好 取一個list或tuple的部分元素是非常常見的操作 對這種經(jīng)常取指定索引范圍的操作,用循環(huán)十分繁瑣,因此,Python提供了切片(Slice)操作符,能大大簡化這種操作 L[0:3]表示,從索引0開始取,直到索引3為止,但不包括索引3 如果第

    2024年02月07日
    瀏覽(17)
  • python中函數(shù),裝飾器,迭代器,生成器

    1.函數(shù)可以作為參數(shù)進行傳遞 2.函數(shù)可以作為返回值進行返回 3.函數(shù)名稱可以當(dāng)成變量一樣進行賦值操作 作用:在不改變原有函數(shù)調(diào)用的情況下,給函數(shù)增加新的功能 ? ? ? ? ?即可以在函數(shù)前面增加新的功能,但不改變原來的代碼 可迭代的數(shù)據(jù)類型都會提供迭代器,即可以

    2024年02月07日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包