私の現在のコードでは、それは非常に大きなファイルに基づいて、任意の年に支払った税の合計を計算し、このどのようにポップすることなく、大きなリストから要素を返すために()
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を返します。私が思いついたオプションはpop(n)を[n]に置き換えるだけですが、任意の値を返すことなく無期限にコード化します。
使用:
def verokertyma():
print("2010",taxcalculation("2010", file),"euros.")
print("2011",taxcalculation("2011", file),"euros.")
予想される出力:
2010 30481841ユーロを。
2011 32391599ユーロ。
実際の出力:
2010 30481841ユーロ。
2011 0ユーロ。
入力ファイルが、このような行の数千から成り; 2010-03-03 ;; 01; CSDAE;
M1 L; 20100303; 6 ;; AA ;; 5; 1595; 2040; 2040; 4850クライスラー; 4Dセブリングセダン2.7オートマチック - CSDAE/277 ;;セブリング; 05; e11 * 01/116 * 0143 * 03; 01; 202; 236; 45713; 1840; 1500; 01; 2730; 137; ; 205; 1C3ACF6R08; 1357405
'ポップ(n)は' * N ' 'で*要素を削除することをご承知のは、次のとおりです。単に最後の要素が戻ってきたために、あなたはこれを使用することができますそれを返しますか? – jadsq
あなたの入力と期待される出力がどのように見えるかを試してみてください。多くの質問に答えられずに時間を過ごすと、コミュニティに役立ちます。 -1〜まで –
もっと良い....あなたの入力ファイルからもサンプル行を表示するようになりました。 –