91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中的迭代是什么

發布時間:2020-07-31 13:40:08 來源:億速云 閱讀:170 作者:清晨 欄目:編程語言

這篇文章主要介紹python中的迭代是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

迭代:是通過重復執行的代碼處理相似的數據集的過程,并且本次迭代的處理數據要依賴上一次的結果繼續往下做,上一次產生的結果為下一次產生結果的初始狀態,如果中途有任何停頓,都不能算是迭代。例如:

(1)非迭代例子

loop = 0
while loop < 3:
    print("Hello world!")
    loop += 1

(2)迭代例子

loop = 0
while loop < 3:
    print(loop)
loop += 1

例1僅是循環3次輸出" Hello world!",輸出的數據不依賴上一次的數據,因此不是跌代。

在python中通常用for …in遍歷元組、列表、字典。而for … in后面需要那個可迭代對象。那么在python中什么是可迭代對象呢?

在python中

(1)可迭代對象(iterable),是指擁有了__iter__的內置方法的對象。

(2)迭代器(iterator) ,是指擁__iter__與__next__方法的對象。

在這里__iner__需要返回一個迭代器對象,__next__方法可以取出值,并停留到取值的位置,以便可取出下一個值。

在這里可以看出一個迭代器一定是一個可迭代對象,而一個可迭代對象不一定是迭代器。

在python中可以用isinstance(object,Iterable)判斷對象是否為可迭代對象。用isinstance(object,Iterator)判斷對象是否為迭代器。

In [1]: from collections import Iterable
In [2]: from collections import Iterator
In [3]: isinstance(1,Iterable)
Out[3]: False
In [4]: isinstance(1,Iterator)
Out[4]: False
In [5]: isinstance((1,2),Iterable)
Out[5]: True
In [6]: isinstance((1,2),Iterator)
Out[6]: False
In [7]: class D():
   ...:     def __iter__(self):
   ...:         pass
   ...:     def __next__(self):
   ...:         pass
   ...:     
In [8]: d = D()
In [9]: isinstance(d,Iterator)
Out[9]: True
In [10]:

python實現迭代:列如,用迭代實現斐波那契數列:

class Fibonacci(object):
    def __init__(self,all_num):
        """初始化類屬性"""
        #定義一個實例屬性,存放要實現斐波那契數列的個數
        self.all_num = all_num
        
        #定義count實例屬性,作為迭代的退出條件判斷
        self.count = 0
        
        #實現斐波那契數列定義a=0,b=1
        self.a = 0
        self.b = 1
    def __iter__(self):
        """在這里self所指3對象本身是一個
        迭代器,所以可以返回自身
        """
        return self
    def __next__(self):
        """
        next,實現迭代返回結果
         
        """
        #判斷輸出的數列個數,是否小于需要的數列個數
        if self.count < self.all_num:
            
            #rect最終要輸出的斐波那契數列
            rect = self.a
            
            #在這里重復讓a=b,b=a+b,來實現斐波那契數列
            self.a, self.b = self.b, self.a + self.b
            self.count += 1
            return rect
        else:
            #當迭代遇到StopIteration異常時便會停止迭代
            raise StopIteration
fibonacci = Fibonacci(10)
for fibo_num in fibonacci:
    print(fibo_num)

迭代:通過存儲一種生成方式,而不是生成結果,來實現數據存儲。從而極大的節約了存儲空間。

注意:

在python2.x中 range()函數后面存的是一個列表,xrange()存的是一個可迭代對象。而在python3.x中range()存的是一個迭代對象,相當于python2.x中的xrange()。

以上是python中的迭代是什么的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

澄城县| 綦江县| 霍城县| 石阡县| 大英县| 桂东县| 武安市| 岢岚县| 内黄县| 南投县| 邓州市| 江达县| 山阴县| 无为县| 雷山县| 辛集市| 平湖市| 信阳市| 柯坪县| 红桥区| 朝阳县| 郎溪县| 龙游县| 长宁区| 张家港市| 封丘县| 茂名市| 资兴市| 南召县| 冷水江市| 厦门市| 武强县| 峨眉山市| 西华县| 崇仁县| 陕西省| 景德镇市| 城步| 夏邑县| 八宿县| 库尔勒市|