コード自体は完成していて動いています。
しかし、イケてないコードだと思うので、アドバイスいただきたいです。
(悩み1)
入力データをリスト化して、その後、辞書としています。
現状、無駄にコードが長くなってしまっていると感じています。
player = list(map(str, input().split(" "))) #['佐藤', '田中'] player_ans= {} for i in player: player_ans[i]=0 #{'佐藤': 0, '田中': 0} 入力データ:佐藤 田中
いつもは、下記コードを使って、入力データを辞書としていました。
しかし、これだとキーに値をいれることができなかったので、リスト化して辞書を作成する、上記コードとしました。
#今回は使用していないが、いつもは下記で入力データの辞書作成 player = set(map(str, input().split(" "))) #{'佐藤', '田中'}
■質問1:
リスト化せずとも、辞書(値を入れられる辞書)を作成できると思うのですが、方法はございますでしょうか?
(悩み2)
上記で作成した辞書に値を追加して、ソートして出力しました。
尚、出力したい結果は、keyのみです。
#↓値を追加した辞書 {'佐藤': 10, '田中': 50} #辞書の値で降順にソート。ソート後の値をiに for i in sorted(player_ans.items(),reverse=True, key=lambda x: x[1]): print(i) #('田中', 50) ('佐藤', 10) print(i[0]) #田中 佐藤
■質問2:
print(i)で出力した結果がタプルになっていたので、やむを得ずprint(i[0])として、
keyを出力しました。しかし、これだと見直したときにわかりにくい気がするので、ほかにいい方法はありますでしょうか?
抽象的で申し訳ないのですが、「print(i[0]) ※タプルの0番目を指定」というのが気に入らないです。。
下記のようなことをできればなと考えています。
辞書の値で降順ソート ⇒ 並び替えた辞書のキーを出力(keysを使う?)
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/28 03:29