一番初めの要素が大きいもの順に並び替えたいです。
total_ans =[ ( sum( [ dict( zip( a, b ) )[v] for i, v in enumerate(x) if i > a.index( v ) ] ), list(x) ) for x in permutations( a ) ] print(total_ans)
とコードを書いて実行すると
[(0, [2, 5, 7, 3, 6]), (8, [2, 5, 7, 6, 3]), (6, [2, 5, 3, 7, 6]), (6, [2, 5, 3, 6, 7]), (14, [2, 5, 6, 7, 3]), (6, [2, 5, 6, 3, 7]), (3, [2, 7, 5, 3, 6]), (11, [2, 7, 5, 6, 3]), (3, [2, 7, 3, 5, 6]), (3, [2, 7, 3, 6, 5]), (11, [2, 7, 6, 5, 3]), (3, [2, 7, 6, 3, 5]), (9, [2, 3, 5, 7, 6]), (9, [2, 3, 5, 6, 7]), (3, [2, 3, 7, 5, 6]), (3, [2, 3, 7, 6, 5]), (9, [2, 3, 6, 5, 7]), (9, [2, 3, 6, 7, 5]), (17, [2, 6, 5, 7, 3]), (9, [2, 6, 5, 3, 7]), (11, [2, 6, 7, 5, 3]), (3, [2, 6, 7, 3, 5]), (9, [2, 6, 3, 5, 7]), (9, [2, 6, 3, 7, 5]), (1, [5, 2, 7, 3, 6]), (9, [5, 2, 7, 6, 3]), (7, [5, 2, 3, 7, 6]), (7, [5, 2, 3, 6, 7]), (15, [5, 2, 6, 7, 3]), (7, [5, 2, 6, 3, 7]), (1, [5, 7, 2, 3, 6]), (9, [5, 7, 2, 6, 3]), (1, [5, 7, 3, 2, 6]), (1, [5, 7, 3, 6, 2]), (9, [5, 7, 6, 2, 3]), (1, [5, 7, 6, 3, 2]), (7, [5, 3, 2, 7, 6]), (7, [5, 3, 2, 6, 7]), (1, [5, 3, 7, 2, 6]), (1, [5, 3, 7, 6, 2]), (7, [5, 3, 6, 2, 7]), (7, [5, 3, 6, 7, 2]), (15, [5, 6, 2, 7, 3]), (7, [5, 6, 2, 3, 7]), (9, [5, 6, 7, 2, 3]), (1, [5, 6, 7, 3, 2]), (7, [5, 6, 3, 2, 7]), (7, [5, 6, 3, 7, 2]), (4, [7, 2, 5, 3, 6]), (12, [7, 2, 5, 6, 3]), (4, [7, 2, 3, 5, 6]), (4, [7, 2, 3, 6, 5]), (12, [7, 2, 6, 5, 3]), (4, [7, 2, 6, 3, 5]), (1, [7, 5, 2, 3, 6]), (9, [7, 5, 2, 6, 3]), (1, [7, 5, 3, 2, 6]), (1, [7, 5, 3, 6, 2]), (9, [7, 5, 6, 2, 3]), (1, [7, 5, 6, 3, 2]), (4, [7, 3, 2, 5, 6]), (4, [7, 3, 2, 6, 5]), (4, [7, 3, 5, 2, 6]), (4, [7, 3, 5, 6, 2]), (4, [7, 3, 6, 2, 5]), (4, [7, 3, 6, 5, 2]), (12, [7, 6, 2, 5, 3]), (4, [7, 6, 2, 3, 5]), (12, [7, 6, 5, 2, 3]), (4, [7, 6, 5, 3, 2]), (4, [7, 6, 3, 2, 5]), (4, [7, 6, 3, 5, 2]), (10, [3, 2, 5, 7, 6]), (10, [3, 2, 5, 6, 7]), (4, [3, 2, 7, 5, 6]), (4, [3, 2, 7, 6, 5]), (10, [3, 2, 6, 5, 7]), (10, [3, 2, 6, 7, 5]), (7, [3, 5, 2, 7, 6]), (7, [3, 5, 2, 6, 7]), (1, [3, 5, 7, 2, 6]), (1, [3, 5, 7, 6, 2]), (7, [3, 5, 6, 2, 7]), (7, [3, 5, 6, 7, 2]), (4, [3, 7, 2, 5, 6]), (4, [3, 7, 2, 6, 5]), (4, [3, 7, 5, 2, 6]), (4, [3, 7, 5, 6, 2]), (4, [3, 7, 6, 2, 5]), (4, [3, 7, 6, 5, 2]), (10, [3, 6, 2, 5, 7]), (10, [3, 6, 2, 7, 5]), (10, [3, 6, 5, 2, 7]), (10, [3, 6, 5, 7, 2]), (4, [3, 6, 7, 2, 5]), (4, [3, 6, 7, 5, 2]), (18, [6, 2, 5, 7, 3]), (10, [6, 2, 5, 3, 7]), (12, [6, 2, 7, 5, 3]), (4, [6, 2, 7, 3, 5]), (10, [6, 2, 3, 5, 7]), (10, [6, 2, 3, 7, 5]), (15, [6, 5, 2, 7, 3]), (7, [6, 5, 2, 3, 7]), (9, [6, 5, 7, 2, 3]), (1, [6, 5, 7, 3, 2]), (7, [6, 5, 3, 2, 7]), (7, [6, 5, 3, 7, 2]), (12, [6, 7, 2, 5, 3]), (4, [6, 7, 2, 3, 5]), (12, [6, 7, 5, 2, 3]), (4, [6, 7, 5, 3, 2]), (4, [6, 7, 3, 2, 5]), (4, [6, 7, 3, 5, 2]), (10, [6, 3, 2, 5, 7]), (10, [6, 3, 2, 7, 5]), (10, [6, 3, 5, 2, 7]), (10, [6, 3, 5, 7, 2]), (4, [6, 3, 7, 2, 5]), (4, [6, 3, 7, 5, 2])]
と出力されました。
この
(0, [2, 5, 7, 3, 6]), (8, [2, 5, 7, 6, 3]), (6, [2, 5, 3, 7, 6]), (6, [2, 5, 3, 6, 7]), (14, [2, 5, 6, 7, 3])・・・
と続く配列(タプル?)を0、8、6、6、14などの一番初めの要素を大きいもの順に並び替えたいです。しかし、
total_ans =[ ( sum( [ dict( zip( a, b ) )[v] for i, v in enumerate(x) if i > a.index( v ) ] ), list(x) ) for x in permutations( a ) ] x1= sorted(total_ans.items(), key=lambda x: x[0]) print(x1)
と書いて実行しても
同じ結果が出力されソートできませんでした。
どう書けばよかったのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。