Elementary 問題 絶対値での並び替え
[-3, 2, 1, -8]なら[1, 2, -3, -8]と並び替える。 リストのindexを取り出してそれで並び替えるというようなことをしたいが、関数を知らないので力技で
def checkio(x): ans=[] order = sorted([abs(i) for i in x]) for i in range(len(order)): for j in x: if abs(j)==order[i]: ans.append(j) ans return ans
Brute Force を使って、あらゆる並び替えを作って、
return x if x == sorted.array
みたいなのでシンプルにもできるかと考えたが並びかえの関数も知らないので、さっさと解いてしまって、他の人の答えで学ぶ。
sorted(x, key=abs)
sortedにkeyオプションがあるのですね 今回はabsをそのまま使えたが、ここを自作の関数にしたい場合は、下記のようにlambdaを使ってつなげればよいようです。
key=lambda x:abs(x)