python迭代法例項 python迭代器例項

2021-10-11 20:24:16 字數 1159 閱讀 8589

1. 迭代器

迭代器是訪問集合元素的一種方式。迭代器物件從集合的第乙個元素開始訪問,知道所有的元素被訪問完結束。迭代器只能往前不會後退,不過這也沒什麼,因為人們很少在迭代途中往後退。

1.1 使用迭代器的優點

對於原生支援隨機訪問的資料結構(如tuple、list),迭代器和經典for迴圈的索引訪問相比並無優勢,反而丟失了索引值(可以使用內建函式enumerate()找回這個索引值)。但對於無法隨機訪問的資料結構(比如set)而言,迭代器是唯一的訪問元素的方式。

另外,迭代器的一大優點是不要求事先準備好整個迭代過程中所有的元素。迭代器僅僅在迭代到某個元素時才計算該元素,而在這之前或之後,元素可以不存在或者被銷毀。這個特點使得它特別適合用於遍歷一些巨大的或是無限的集合,比如幾個g的檔案,或是斐波那契數列等等。

迭代器更大的功勞是提供了乙個統一的訪問集合的介面,只要定義了__iter__()方法物件,就可以使用迭代器訪問。

迭代器有兩個基本的方法

__iter__方法:返回迭代器物件本身

例項**如下:

#coding:utf-8

class myrange(object):

def __init__(self,n):

self.i = 0

self.n = n

def __iter__(self):

return self

def next(self):

if self.i < self.n:

self.i += 1

return self.i

else:

raise stopiteration

if __name__ == "__main__":

x = myrange(3)

print x

print "self.n=",x.n,";","self.i=",x.i

x.next()

print "self.n=", x.n, ";", "self.i=", x.i

x.next()

print "self.n=", x.n, ";", "self.i=", x.i

output:

self.n= 3 ; self.i= 0

self.n= 3 ; self.i= 1

self.n= 3 ; self.i= 2

python實現牛頓法 牛頓迭代法Python實現

例1 給定方程 f x x 2 sin x 1 0 判別該方程有幾個實根,並用牛頓法求出方程所有實根,精確到 10 解 利用畫圖法觀察根的所在區間為 2,1 和 0,1 其中藍色為 y f x 的曲線,橘黃色的直線是 y 0 畫圖 import numpy as np import matplotl...

python計算牛頓迭代法

利用python的符號計算庫sympy庫來計算函式的雅可比矩陣和海森矩陣 from sympy import import numpy as np 計算具體值 defcalculatevalue jac or hess,x,isjacmac result x dic for data in rang...

牛頓迭代法

創新工廠的筆試題 不用庫函式sqrt 求乙個整型數n的開方,要求精度達到0.001即可。在這裡首先介紹一下牛頓迭代法 假設乙個方程為 f x 0 那麼假設其解為x0,則用泰勒級數展開之後可得 f x f x0 f x0 x x0 0 其中x為其近似解。根據上式推導出 x x0 f x0 f x0 這...