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

2024-09-29 01:22:02 发布

您现在位置: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])

我对python非常熟悉,来自vb.net,所以它可能没有意义

我有一个列表,每行有4个元素,带有逗号分隔符。这段代码应该贯穿每个“行”,并将第4个元素与if语句的参数进行比较,并根据结果执行任何操作

我一直认为“int”对象不是一个可下标的错误,我怀疑这可能是除此之外的更多错误

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

我感谢大家能给我的任何意见


Tags: 代码in元素forifis错误not
2条回答

这是你的问题:

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])

你在一个范围内循环。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

因此,您不是在数据中循环,而是在索引范围中循环

相关问题 更多 >