我對Python非常陌生。如何測試變量是否變化? Python
粗略我要做到以下幾點:
var=0
while x doesn't change
return var
if x changes
var = var + 1
這應再繼續進行,直到所有的x值進行處理。我沒有x值列表。
任何建議如何從我的想法到代碼?
我在Arcmap的現場計算器中工作。
我對Python非常陌生。如何測試變量是否變化? Python
粗略我要做到以下幾點:
var=0
while x doesn't change
return var
if x changes
var = var + 1
這應再繼續進行,直到所有的x值進行處理。我沒有x值列表。
任何建議如何從我的想法到代碼?
我在Arcmap的現場計算器中工作。
def edgedetector(it):
var = 0
old_i = object() # guaranteed to be different from everything else
for i in it:
if i != old_i:
var += 1
old_i = i
yield var
有了這個生成器功能,請執行以下操作:
認爲你有你感興趣的值可迭代it
,你做
import itertools
it_a, it_b = itertools.tee(it) # split it up
for items, val in itertools.izip(it_a, edgedetector(it_b)):
#do whatever you want to do with it
備選:
def edgedetector(it):
var = 0
old_i = object() # guaranteed to be different from everything else
for i in it:
if i != old_i:
var += 1
old_i = i
yield i, var # this is changed...
使得它更容易:
for items, val in edgedetector(it):
#do whatever you want to do with it
object()
是類object
的實例的實例。生成器函數使用它來檢測初始「舊」對象與迭代的第一個元素的不等式。
詳細說明。顯示「x」是什麼。 – ddinchev