【发布时间】:2015-08-05 16:36:16
【问题描述】:
我在下面的代码中有一个逻辑错误:
while count < 5:
row = next(csv_f)
if row[0] != currentID:
userArray.append(Users(row[0]))
currentID = row[0]
count = count+1
userArray[len(userArray)-1].addUsageData(row[1],row[3])
循环遍历每个用户,直到 ID 发生变化,总共执行五次。
一切正常,但我从 row[1] 获得的使用数组中的最后一个索引始终是下一个 userID 块中的第一个。就好像执行 if 块时 len(userArray) 没有更新。
【问题讨论】:
-
尝试在前后打印 len(userArray)。努力实际调试,
-
从您发布的代码中,问题的根源并不明显。你能准备一个可运行的例子来演示这个问题吗?
-
@flyinghigh 如果您将元素添加到列表中 - 长度会增加。你说它不是,因为你附加了 if。我非常怀疑您遇到了 Python 错误。在每行后面加上有意义的信息的打印语句我很确定你会在 5 分钟内通过这种方式解决问题。
-
Python 错误还是我的错误?
-
所以数组的一个索引有276行,长度是正确的。但是,最后,当添加新索引时,它仍然显示长度为 1! 274 这是 len 1 275 这是 len 1 276 这是 len 1 1 这是 len 2