2016-09-12 9 views
-1

したがって、pythonの挿入ソートを使ってnamedtuplesのリストをソートしたいのですが、ここに私のコードがあります。2次元リストをPythonで挿入ソートを使ってソートする

def sortIt(tripods): 
     for i in range(1, len(tripods)): 
      tmp = tripods[i][3] 
      k = i 
      while k > 0 and tmp < tripods[k - 1][3]: 
       tripods[k] = tripods[k - 1] 
       k -= 1 
      tripods[k] = tmp 

実行するたびに、TypeError:intオブジェクトはsuscriptableではありません。 TripodsはnamedTuplesのリストで、namedTupleのインデックス3はリストを並べ替えるためのものです。

+0

「tripods [k] = tmp」はどのタイプのオブジェクトを「tripods [k]」に割り当てるのですか?次回に '三脚[k]'を調べるとどうなりますか? –

+0

[Pythonで外部キーを使ってリストをソートする]の可能な複製(http://stackoverflow.com/questions/14071988/python-sort-a-list-with-external-key) – Prune

答えて

0
def sortIt(tripods): 
    for i in range(1, len(tripods)): 
     tmp = tripods[i] 
     k = i 
     while k > 0 and tmp[3] < tripods[k - 1][3]: 
      tripods[k] = tripods[k - 1] 
      k -= 1 
     tripods[k] = tmp 

私はあなたのコードを変更しました。あなたはであるtmpにtripods[i][3]を割り当てていました。そのため、コンパイラはintがsuscriptableではないことを警告しています。

関連する問題