みなさん、いつも大変お世話になっております。
yukicoderでPythonを使ってこの問題を解いたのですが、解く際にdict型を使ったほうがいいと思ったのでPython sortのまとめ (リスト、辞書型、Series、DataFrame)というqiitaの記事を参考にしましたが、気になる点が2点ありました。
#私の書いたコード(https://yukicoder.me/submissions/240376) height_dict = {"A":int(input()),"B":int(input()),"C":int(input())} for k,v in sorted(height_dict.items(), key=lambda x:-x[1]): print(k)
①なぜvalue降順ソートはkey=lambda x: -x[1]
になるのにkey降順ソートはkey=lambda x: -x[0]
になるのか
→dictってindex付けられないんじゃないの?index付けられないのにkeyだと[0]で指定できてvalueだと[1]なの???と思ってしまいます。
例えば、
>>> hoge_dict = {"A":"hoge","B":"fuga","C":"piyo"} >>> hoge_dict[0] Traceback (most recent call last): File "<input>", line 1, in <module> KeyError: 0 >>> hoge_dict[-1] Traceback (most recent call last): File "<input>", line 1, in <module> KeyError: -1
こんな感じに。
(追記)
→
items()の返り値がtupleになるから???
>>>("A",100) ('A', 100) >>>("A",100)[0] 'A' >>>("A",100)[1] 100
②key=lambda x: x[1]
だと昇順になるがこのx[1]
にマイナスをつけると昇順から降順に変わるのはなぜか
→Pythonで他にマイナスを付けたら昇順から降順になるものがなさそうなので違和感がある。hoge.sort(reverse=True)のような引数で降順を指定するイメージしかないため。
###実行環境
Python3.6
Mac High Sierra 10.13.3
以上よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/02 12:55
2018/03/02 13:02 編集
2018/03/02 14:07