タプルのリストをタプルのリストで並べ替えるソート関数を実装しようとしていますが、関数には次のようにしたい:リスト内のインデックスでタプルをソート
def sort(list):
for item in list:
list.sort(key=lambda tuple: tuple[1])
return list
これは
listtest = [("test",2),("testtt",5),("ahj",12),("asdasd",1),("34",3)]
が呼び出され
[('asdasd', 1), ('test', 2), ('34', 3), ('testtt', 5), ('ahj', 12)]
を返します。
私が単にこれを使用しないのは、私が数学のバックグラウンドに由来するので、プログラミング言語にアルゴリズムを実装する方法を学ぼうとしているからです。
Iインデックスによってソート要素を行い
def my_sort(list):
for i in range(len(list)):
j = i-1
key = list[i]
while (list[j] > key) and (j >= 0):
list[j+1] = list[j]
j -= 1
list[j+1] = key
return list
(例えば、リストは単なる要素ではなく、タプルを含むと示されている)は、以下のような作品を作ったアルゴリズム。今、私はインデックスでタプルをソートしたい部分は、私がこれまで持っていることは次のとおりです。
def sort_tuples(list):
for i in range(len(list)):
j = i - 1
key = list[i][1] #returns the index of tuple i
while (list[j][1] > key) and (j >= 0): #compares the 2nd tuples index with the first tuples index
list[j+1] = list[j]
j -= 1
key = list[j+1][1] # <----- problem?
return list
これを実行しているとき、それはあなたがでそれを再挿入するためにlist[i]
を維持する必要があり
[('test', 2), ('test', 2), ('testtt', 5), ('testtt', 5), ('ahj', 12)]
まず、変数名として "list"を使用しないでください。 "list"は組み込みの名前であるため、コードが混乱します – lpozo