Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我如何遍历这个列表以得到正确的答案?_Python_List_Loops_Csv - Fatal编程技术网

Python 我如何遍历这个列表以得到正确的答案?

Python 我如何遍历这个列表以得到正确的答案?,python,list,loops,csv,Python,List,Loops,Csv,我试图遍历一个列表以获得结果列表,但第一个输出不正确。我的代码列在下面 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(r

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

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

您的行
total=int(行[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 = 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])

您的循环基本上是每次对总计求反,然后添加一个新值。我认为这不是您想要的,但您只使用了csv文件的一列。