多重配列のソートはみんな色々やっている.
例えば
sorted(x,key=lambda x:x[0]) #もしくは sorted(x,key=lambda x:x[0],reverse=True)
と書けば配列の一つ目でソートが出来る.
これはソートだけに限るものではなかった.
>>x = [(50,taro),(43,jiro),(85,hana)]
>>min(x,key=lambda x:x[0])
(43,jiro)
こう書けば配列xの一つ目の要素で最小の値を持つものを抽出できる.
大抵の比較の関数はkeyというキーワード変数を持っており,そこに要素を指定する記述を書けば,色々出来る.