猿问

如何遍历此列表以获得正确答案?

我正在尝试遍历列表以获取结果列表,但第一个输出不正确。我的代码如下


with open(csvpath, newline='') as csvfile:

    csvreader = csv.reader(csvfile, delimiter=',')

    csv_header = next(csvreader)

    total = 0

    for row in csvreader:

        #print(csvreader)

        total = int(row[1]) -total

我跳过了第一行,因为它包含标题。我基本上应该从(单元格 b1)867884 中减去(单元格 B2)984655。但是因为我使用的是循环,所以第一个值total是 867884 或(单元格 B2 - 0)。


我也不能按照老师的规定使用熊猫来解决这个问题。


我搜索了互联网和书籍,以找到正确的方法来找到答案,但没有成功。


结果应该是(单元格 B1)867884 减去(单元格 b2)984655。但是因为我使用的是循环,所以第一个值total是 867884 或(单元格 B2 - 0)。


绝地无双
浏览 179回答 2
2回答

拉莫斯之舞

您的行total = int(row[1]) -total并没有真正意义,因为您在任何时候都只使用一列(行 [1] 部分)。事实并非您正在使用循环,即使使用循环,您也可以执行以下操作:with open(csvpath, newline='') as csvfile:    csvreader = csv.reader(csvfile, delimiter=',')    csv_header = next(csvreader)    for row in csvreader:        print(int(row[0]) - int(row[1])) # use indexes to specify which column you need我会让你找到最好的方法来只获得 B 行;)

翻翻过去那场雪

我想我用这段代码让你大部分时间都在那里。我卡住了一个变量“last”,它将前一次迭代放在 for 循环之外,并在循环运行后分配它。问题不干净,但希望您能接受并解决问题。with open('convertcsv.csv', newline='') as csvfile:csvreader = csv.reader(csvfile, delimiter=',')# csv_header = next(csvreader)cvsfile = csvreaderlast = 0for value in csvreader:    b1 = int(value[1])    b2 = last    if last == 0:        next        total = b1 - b2        print(total)        last = int(value[1])
随时随地看视频慕课网APP

相关分类

Python
我要回答