Python3.9で、souted()とラムダ式を勉強しているところです
sorted()のkeyに指定するラムダで、戻り値にマイナスを付けるコードがあり、
これは何だろうと思って以下のリストを作成してsorted()にかけて出力してみました
(コメント行として書いている箇所が出力結果です)
li = [('a', 1), ('b', 200), ('c', 50), ('e', -3), ('h', -55000), ('d', 10)]
print(sorted(li, key=lambda x: x[0]))
# [('a', 1), ('b', 200), ('c', 50), ('d', 10), ('e', -3), ('h', -55000)]
print(sorted(li, key=lambda x: -x[0]))
# TypeError bad operand type for unary -: 'str'
print(sorted(li, key=lambda x: x[1]))
# [('h', -55000), ('e', -3), ('a', 1), ('d', 10), ('c', 50), ('b', 200)]
print(sorted(li, key=lambda x: -x[1]))
# [('b', 200), ('c', 50), ('d', 10), ('a', 1), ('e', -3), ('h', -55000)]
出力結果を見るに、マイナスを付けるとreverse=Trueを指定したときと
同じ結果が得られるということなのかなと思ったのですが
1つだけTypeErrorになってしまいました
これは何故なのでしょうか
【まず1嫁】くだすれPython(超初心者用) その55
■ このスレッドは過去ログ倉庫に格納されています
198デフォルトの名無しさん
2021/10/17(日) 19:55:12.60ID:t5hHOLNv■ このスレッドは過去ログ倉庫に格納されています
