タプルの中の配列の連続した合計値を算出したいです。
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])・・・
と続くタプル(配列?)の[2, 5, 7, 3, 6]、[2, 5, 7, 6, 3]、[2, 5, 3, 7, 6]、[2, 5, 3, 6, 7]、[2, 5, 6, 7, 3]の連続した合計値を算出したいです。
ただし、”合計値”と書いていますがただの合計値ではなく
例えばa=[2, 5, 7, 3, 6] とすると
a[0]+(a[0]+a[1])+(a[0]+a[1]+a[2])+(a[0]+a[1]+a[2]+a[3])+(a[0]+a[1]+a[2]+a[3]+a[4])=63 のような配列の要素の連続の合計値を算出したいです。
なので理想のアウトプットは
(0, [63]),・・・
のような形です。
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 ) ] x2= sorted(total_ans.items(), key=lambda x: x[1]) print(x2)
までコードを実装したのですが
連続した合計値を算出する方法の実装がわかりません。
どのように書けますか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。