我正在使用python和一些arcpy模块(我认为对我的问题不重要)来运行包含三次迭代的代码(一个内部有两个较小循环的循环)。我的代码如下所示:
file = r"C:Directory\File"
cursor = arcpy.SearchCursor(file,fields)
A = range(1,270)
os.chdir ('C:\Directory')
book = xlwt.Workbook()
sheet1 = book.add_sheet('Sheet1',cell_overwrite_ok = True)
for a in A:
tot = 0
result = 0
for row in cursor:
if row.getValue('Firstfield') == a:
tot = tot + row.getValue('secondfield')
print (tot)
for row in cursor:
print row.getValue('GTYS_Branc')
if row.getValue('GTYS_Branc') == a:
result= result + row.getValue(Field1) * ((row.getValue(Field2))/tot )
sheet1.write((branch-1),0,finalIIIprob)
sheet1.write((a-1),1,result)
book.save('Excel.xls')
代码有效,但没有给我我想要的结果。我注意到问题是它实际上忽略了第一个内部循环和第一个内部循环在第一个内部循环之后的每次迭代。问题是什么?
答案 0 :(得分:0)
问题可能是你正在迭代“数组”中的值,但是除了一个数字是A,而不是从0到A的所有数字之外什么都没有,你需要做的是使用范围函数: 在范围(A)中尝试i: