質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1016閲覧

Python 商品コードと売上個数の合計

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/06/18 15:12

Pythonで4桁の数字からなる商品コードとそれに対応する売上個数が空白で区切られて順に入力されたセットデータを元に商品コードごとの売上個数の合計を求めて画面に出力したい。
ただし商品コードに9999を入力するか100個のセットデータを入力するまで商品コードと売上個数をキーボードより入力する。ここでセットデータの入力は必ず商品コードの昇順で入力しセットデータの個数は1〜100個である、なお商品コードに9999を入力する際には集計の対象とならない任意の売上個数を入力する。
これがどうやればいいのか分かりません。
どうか教えてください。
入力データ例
1001 3
1001 3
1001 1
1002 2
1002 1
1002 5
1002 1
1002 7
1003 8
1003 9
1004 3
1004 5
1004 3
1005 10
1005 2
9999 0

出力例
1001 : 7
1002 : 16
1003 : 17
1004 : 11
1005 : 12

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

クラスを使って書くとこういう感じです。

python

1class Aggregate(dict): 2 def __init__(self, maxcount=100, endcode='9999'): 3 self.count = 0 4 self.maxcount = maxcount 5 self.endcode = endcode 6 7 def entry(self, s): 8 code, sales = s.split() 9 if code == self.maxcount: 10 return False 11 if code in self: 12 self[code] += int(sales) 13 else: 14 self[code] = int(sales) 15 self.count += 1 16 return self.count < self.maxcount 17 18 def __repr__(self): 19 return '\n'.join([f'{key} {self[key]}' for key in self]) 20 21aggr = Aggregate() 22while aggr.entry(input()): pass 23print(aggr)

実行結果

python

1>>> aggr = Aggregate() 2>>> while aggr.entry(input()): pass 3... 41001 3 51001 3 61001 1 71002 2 81002 1 91002 5 101002 1 111002 7 121003 8 131003 9 141004 3 151004 5 161004 3 171005 10 181005 2 199999 0 20>>> print(aggr) 211001 7 221002 16 231003 17 241004 11 251005 12

投稿2021/06/18 16:05

編集2021/06/18 16:58
ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/06/18 17:03

初心者なもので出来ましたらリストまでで作れませんかね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問