AtCoder Beginner Contest 128 B問題
のように1列目の要素を昇順にソートし同じだった場合2列目の要素を降順にソートするといったようなものを1行で書く方法を探しています。
最初に1列目をソートし値が同じものを新たなコンテナに入れそれをソートするという方法ではうまくいったのですが、できれば1行ですっきり書ける方法などあれば知りたいです。
例えば
Python3
1from operator import itemgetter 2a=[(5,3),(4,6),(2,6),(4,5),(9,2),(5,4)] 3print(sorted(a,key=itemgetter(0,1))) 4#[(2, 6), (4, 5), (4, 6), (5, 3), (5, 4), (9, 2)]
というようになることが分かりました。しかしどちらかにreverseを真にして一方は偽のままにするというようにすることができません。
Python
1sorted(a,key=itemgetter(0,1),reverse=itemgetter(False,True))
などとすると
error
1print(sorted(a,key=itemgetter(0,1),reverse=itemgetter(False,True))) 2TypeError: an integer is required (got type operator.itemgetter)
というエラーがでます。
ラムダ式を使ったものでも良いのでどなたか分かる方いましたらご教授のほどよろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/23 01:15