for row in range(numLines):
if row[intIdx](3) is not 'DEP':
check_total += float(row[intIdx][2])
else:
deposit_total += float(row[intIdx][2])
我对来自vb.net的python非常环保,所以它可能没有意义。
我有一个列表,每行有4个元素,并带有逗号分隔符。这段代码应该贯穿每个“行”,并将第4个元素与if语句的参数进行比较,并根据结果进行任何操作。
我继续得到'int'对象不是一个可订阅的错误,我怀疑它可能是更多的错误。
我只需要解释发生了什么以及如何改进代码,以便我的程序能够正常运行。
我感谢大家提供给我的任何意见。
答案 0 :(得分:0)
这一行是你的问题:
if row[intIdx](3) is not 'DEP':
您需要从行创建一个数组,目前它只是一个字符串。这是代码:
for row in range(numLines):
rowarray = row.split(',')
if rowarray[3] != 'DEP':
check_total += float(rowarray[2])
else:
deposit_total += float(rowarray[2])
答案 1 :(得分:0)
您正在循环范围。 numLines是列表的大小或输入文件的长度。老实说,我不太了解你的想法,但我认为这就是你要做的事情。
with open('Transactions.txt') as file:
for line in file:
rowarray = line.split(',')
if rowarray[3] != 'DEP':
check_total += float(rowarray[2])
else:
deposit_total += float(rowarray[2])
写作时
for i in range(nuList):
你基本上在做什么
for i in [1, 2, 3, ...., N]: # being N the size of your list
因此,您不是在遍历数据,而是通过索引范围。