不确定如何将列表中的元素引用到if语句

时间:2015-12-10 06:55:32

标签: python

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'对象不是一个可订阅的错误,我怀疑它可能是更多的错误。

我只需要解释发生了什么以及如何改进代码,以便我的程序能够正常运行。

我感谢大家提供给我的任何意见。

2 个答案:

答案 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

因此,您不是在遍历数据,而是通过索引范围。