减去列表无效。我减去其他所有元素

时间:2020-03-22 21:51:56

标签: python python-3.x list subtraction

我是Python的新手(几天),请原谅我。我正在尝试从另一个列表中减去一个列表,然后将该列表求和。

with open(pybankfile, newline="") as csvfile:
    csv_reader = csv.reader(csvfile, delimiter=",")

    # @NOTE: This time, we do not use `next(csv_reader)` because there is no header for this file

    # Read the header row first (skip this step if there is now header)
    csv_header = next(csvfile)
    lst =[]
    print(f"CSV Header: {csv_header}")
    reader = csv.reader(csvfile)
    data = list(reader)
    maxnum = max(data, key=lambda row: int(row[1]))
    minnum = min(data, key=lambda row: int(row[1]))
    second_column = [int(row[1]) for row in data]
    #third_column = [int(row[2]) - int(row[1]) for row in second_column]
    #dy = sum(third_column)
    countmths = len(second_column) 
    y= (second_column[1::2])
    x= (second_column[::2])
    d=[(b - a)  for a, b in zip(y, x)]

    dy=sum(d)
    print(d)
    print (x)
    print(y)
    print(dy)


    sort_col_2 = sorted(second_column)
    tot = sum(second_column)
    avg_bal = tot / countmths
    avg_diff = dy / 85


    #print values
    print(f"minimum: {minnum}")
    print(f"maximum: {maxnum}")
    print(f"Balance: {tot}")
    print(f"Average:{avg_bal}")
    print(f"Avg Diff:{avg_diff}")

新创建的列表的打印效果与我期望的一样,但是相减会产生奇怪的结果-似乎产生了其他所有差异,而不是所有差异。

1 个答案:

答案 0 :(得分:0)

diff_sum = [second_column [i + 1]-second_column [i] for i in range(len(second_column)-1)]

我喜欢漂亮,简单和高效。我并不假装很了解,但是简单才是开始。

谢谢。