pythonで、多次元リストで複数のキーでソートする方法。
list.sort(cmp=lambda x,y: cmp([x[2],x[1]],[y[2],y[1]]))
上記の例では3項目目、2項目目の優先順位でソート項目を設定している。
ちなみにxとyには比較する前後の値(この場合は一次元のリスト)が入っている。
前後の行同士を比較するイメージ。
#マニュアルに書いてないけどcmpの引数はリストも受け付けるのね。
CSVファイルなどを読みこんでソートしたいときに便利
import csv fd=file("hoge,csv","r") csvfile=csv.reader(fd) list=[] for getline in csvfile: list.append(getline) fd.close() list.sort(cmp=lambda x,y: cmp([x[2],x[1]],[y[2],y[1]]))