如何在没有pop()

时间:2017-10-24 15:18:59

标签: python list pop

我目前的代码如下所示

 def taxcalculation(year, file):
    annuallist=[]
    list2=[]
    line=file.readline()
    for line in file:
        list1=line.split(";")
        if list1.pop(1)[0:4]==year:##This part searches the list for specific year
            annuallist.append(list1.pop(32))##This part searches the list for specific value used in tax() function
            annuallist=[int(x) for x in annuallist]
            list2.append(tax(annuallist.pop(0)))                
    sum1=round(sum(list2))
    return sum1

它根据非常大的文件计算任何特定年份的税金总和。 它首次在代码中使用时效果很好,但在此之后的任何时候它都会返回0.只有我提出的其他选项是用[n]替换pop(n)然后才运行代码无限期地没有返回任何价值 使用时:

    def verokertyma():             
    print("2010",taxcalculation("2010", file),"euros.")
    print("2011",taxcalculation("2011", file),"euros.")

预期产量:
2010 30481841欧元 2011 32391599欧元 实际输出:
2010 30481841欧元 2011年0欧元。

输入文件由数千行代码组成:
M1; 2010-03-03 ;; 01; CSDAE,L; 20100303; 6 ;; AA ;; 5; 1595; 2040; 2040; 4850; 1840; 1500; 01; 2730; 137; 6 ;;;克莱斯勒; 4D SEBRING SEDAN 2.7 AUTOMATIC-CSDAE / 277 ;;; SEBRING; 05; e11 * 01/116 * 0143 * 03; 01; 202; 236; 45713; 205; 1C3ACF6R08; 1357405

1 个答案:

答案 0 :(得分:1)

pop()方法都会返回列表中的最后一个元素,而会将其删除。要简单地返回最后一个元素,您可以使用:

list[len(list) - 1]

list[-1]