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 這...