0
while (lines < travels + 1):
    data = lines + 1
    startFrom = raw_input ('The package travels from: ')
    startFrom = str(startFrom)
    arriveIn = raw_input ('The package arrives to: ')
    arriveIn = str(arriveIn)
    pack = raw_input('Number of packages: ')
    pack = int(pack)
    print startFrom, '--->', arriveTo, ': ', pack
    capacity = {}
    if capacity.has_key(startFrom):
        capacity[startFrom] = capacity[startFrom] + pack
    else:
        capacity[startFrom] = pack
print capacity

最後に、与えられた最後の入力のみを表示 (および保存のみ) し、値をインクリメントしたり、辞書に新しいデータを追加したりしません。私もdefaultdicで試しましたが、結果は同じでした。

4

1 に答える 1

3

ループを介して各反復をcapacity空にリセットします。dict

capacity = {} #Create it before the loop and use this through out the below loop.
while (lines < travels + 1):
 data = lines + 1
 startFrom = raw_input ('The package travels from: ')
 startFrom = str(startFrom)
 arriveIn = raw_input ('The package arrives to: ')
 arriveIn = str(arriveIn)
 pack = raw_input('Number of packages: ')
 pack = int(pack)
 print startFrom, '--->', arriveTo, ': ', pack
 if startFrom in capacity:#Style change and more pythonic
  capacity[startFrom] = capacity[startFrom] + pack
 else:
  capacity[startFrom] = pack
print capacity

それはそれを修正する必要があります。

于 2012-12-22T08:34:35.667 に答える