2016-03-19 8 views
-2

何かが可能かどうか、あるいは私が間違った方法でそれについて行っているのだろうかと思っていました。スライシング?追加されたリストPython

私は条件のために外部ファイルをチェックしているif文を持っています。結果を表示します(これはすべて動作します)。結果から表示される数字のうち2つを使用して、金額を計算し、表示された各レコードの結果の横にこの金額を印刷する必要があります。

私が望むもの:追加されたリスト1から各アイテムを一度に印刷する。レコード1が印刷されると、それはcalcのアイテム1を表示し、レコード2は印刷し、calcのアイテム2を表示する。

numberofItemsおよびDataは、私のプログラム内で分割、追加、並べ替える他のコードのものです。

def opt(): 
    calc = [] 

    for i in range (numberOfItems): 
     nextRecord = Data[i] 
     no1 = (nextRecord[0]) 
     date = (nextRecord[1]) 
     no2 = (nextRecord[2]) 
     no3 = int(nextRecord[3]) 
     rank = (nextRecord[4]) 
     no4 = int(nextRecord[5]) 

     if no4 < no3: 
      calc.append(no4 - no3) 
      print (no1, "\t\t\t", no2, "\t\t", no3, "\t\t", no4, "\t\t", calc) 
+2

質問が不明です。 'Brows'はあなたの問題と何が関係していますか? 「データ」とは何ですか? 'numberOfItemsとは何ですか? 'a'と' b'とは何ですか?設定されたものは何ですか?実際には望ましい出力は何ですか? [ask]をお読みください。 – Goyo

+0

また、字下げの問題はありませんか?あなたの 'if'文は' for'ループの中に入るためにインデントされていませんか? – mgc

+0

自分のコード/投稿を編集しました。その中に問題/エラーをコピーする。 –

答えて

0

私が正しく質問を理解していれば、あなたは最後の行にあなたのprintコールの終了時にcalcを持っている必要はありませんが、むしろ、あなたはあなただけでcalcに追加項目を印刷したいです前の行。

これを行うための最も明白な方法は、単にあなたがそれを印刷したいときに値を再計算することである。

print(no1, "\t\t\t", no2, "\t\t", no3, "\t\t", no4, "\t\t", no4 - no3) 

また、あなたはそれを追加し、印刷する前に、変数として計算を救うことができる(これはなるだろうより多くの意味計算が高価だった場合、それは実際には2つの整数)を減算するために重要ではありません:

val = no4 - no3 
calc.append(val) 
print(no1, "\t\t\t", no2, "\t\t", no3, "\t\t", no4, "\t\t", val) 

最後のオプションは、バックcalcリストから値を取ることです。 calc-1に索引付けすることで、リスト内の最後の項目を取得できます。これは具体的に求めていることですが、このようにする理由はそれほどありません。

print(no1, "\t\t\t", no2, "\t\t", no3, "\t\t", no4, "\t\t", calc[-1])