为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

绝地无双 2021-12-21 16:06:07
我正在尝试遍历列表以获取结果列表,但第一个输出不正确。我的代码如下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)。
查看完整描述

2 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

您的行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 行;)


查看完整回答
反对 回复 2021-12-21
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

我想我用这段代码让你大部分时间都在那里。我卡住了一个变量“last”,它将前一次迭代放在 for 循环之外,并在循环运行后分配它。问题不干净,但希望您能接受并解决问题。


with open('convertcsv.csv', newline='') as csvfile:

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

# csv_header = next(csvreader)

cvsfile = csvreader

last = 0

for value in csvreader:

    b1 = int(value[1])

    b2 = last

    if last == 0:

        next

        total = b1 - b2

        print(total)

        last = int(value[1])


查看完整回答
反对 回复 2021-12-21
  • 2 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号