比较列表的最后一个索引,以便使用该索引操作变量

时间:2015-11-04 03:06:37

标签: python indexing compare

这段代码正在列出一个列表列表(从csv文件创建)并尝试组织它。我知道它看起来很乱,我已经在学校编写了几个月。

无论如何,代码会比较[c]索引的第一个索引的前7个字符(因为我必须遍历此列表中的所有2500多个列表)。如果它们是相同的,我会用这些变量做一些数学计算。

除了最后的数据分组外,所有这些都有效。我得到&#34;索引超出范围&#34;由于[c+1] while c <len(dataList)时的while c+1 < len(dataList): if dataList[c][0][0:7] == dataList[c+1][0][0:7]: totalVolume += float(dataList[c][5]) volClose += (float(dataList[c][5]) * float(dataList[c][4])) c +=1 else: volClose += (float(dataList[c][5]) * float(dataList[c][4])) totalVolume += float(dataList[c][5]) avgPrice = volClose/totalVolume averageList.append((dataList[c][0][0:7], avgPrice)) c +=1 count += 1 volClose = 0 totalVolume = 0 avgPrice = 0 if c == len(dataList): if dataList[c][0][0:7] == dataList[c+1][0][0:7]: totalVolume += float(dataList[c][5]) volClose += (float(dataList[c][5]) * float(dataList[c][4])) c +=1 else: volClose += (float(dataList[c][5]) * float(dataList[c][4])) totalVolume += float(dataList[c][5]) avgPrice = volClose/totalVolume averageList.append((dataList[c][0][0:7], avgPrice)) c +=1 return averageList ,这就是为什么我在while语句中添加了+1。

底层if-else语句对我的代码没有影响我不会想,但这是我尝试解决这个问题。请解释我如何清理此代码。谢谢!

tradeOrderStats

1 个答案:

答案 0 :(得分:0)

Python从0开始计数,因此您无法转到等于列表长度的索引。例如,像['a', 'b', 'c']这样的列表的长度为3,索引为0,1和2.这就是您收到错误的原因。