2016-04-10 4 views
-1

奇数行が部門番号で、売上高合計が売上合計であるファイルを読み込もうとしています。私は、行を読み込んで後で変数に追加する必要があります。AttributeErrorを解決する方法: 'list'オブジェクトにPythonの 'next'属性がありません

def main(): 
    with open('P2data.txt') as x: 
     data = x.readlines()  
     dept = (data)[::2]  
     sales = (data)[1::2] 
    if dept == '1': 
     total = sales.next() 
     total.append(total1) 
    elif dept == '2': 
     total = sales.next() 
     total.append(total2) 
    else: 
     total = sales.next() 
     total.append(total3) 
    print('Dept 1:', total1) 
    print('Dept 2:', total2) 
    print('Dept 3:', total3) 
main() 
+0

上記のコードは、私が使用しているコードです。 AttributeError: 'list'オブジェクトに 'next'属性がありません。 –

+2

'sales.next()'に何を期待しましたか? 'total1'、' total2'、または 'total3'はどこから来ると思いますか? – user2357112

+0

私が期待していたのは、sales.next()が次の行を読み込んで、それをtotal1に追加するということでした。 –

答えて

1

コードが間違っています。また、データ構造全体をその構造の要素の1つと比較するか、リストに追加するための構文を混ぜることなど、データ構造全体をチェックするなどの作業も行っています。作成したデータ構造をループして辞書に追加するだけです。

def main(): 
    with open('P2data.txt') as x: 
     data = [line.strip() for line in x] 
    dept = data[::2] 
    sales = data[1::2] 
    totals = {'1':0, '2':0, '3':0} 
    for dep,sale in zip(dept, sales): 
     totals[dep] += float(sale) 
    for dep in sorted(totals): 
     print('Dept {}: {}'.format(dep, totals[dep])) 

main() 
+0

これはいいですね:) – jDo

+1

'print {'Dept {}:{}'。書式(dep、totals [dep])' – jDo

+0

@jDo - 'dep'?もっと「デルフ」のような、今夜。ありがとう。 :P – TigerhawkT3

関連する問題