基本の.sort()だと、要素の[0]番目でソートされる。
たとえば、[ [Index,x,y,z], , , ,]ではIndexでソートされる事になる。
たとえば、yでソートしたい場合等に対応するには
関数で指定してやれば良い。
def hikaku(x,y): return x[2] - y[2] #ココに、比較したい要素の番号を入れる list = [ [0,0,5,9] , [1,3,4,5] , [2,6,3,5] ] list.sort( hikaku )
パイソンすげぇと思ったら、普通にJScriptでもあった orz
知らなかっただけ。
lambdaを使う
わざわざ関数を指定するのがメンドクサイ場合、無名関数のlambdaを使うと良い
list.sort( cmp = lambda x , y: cmp(x[2],y[2]) )
cmp関数
cmp(a,b)は a,bを比較して、値を返す
0 件のコメント:
コメントを投稿