入力として、nレベルまでできるリストが得られ、毎回変わります。私はこのリストと期待される出力をソートしたい、私はリストここPythonリストを再帰的にソート
[[2, 1, 3], 4, [2, 3], 7, 1, [9, [4, 2], 5]]
を持っている、と仮定すると、最初のソートは、リスト内の要素の合計に基づいて、その後の要素のもと起こっている、ここで
[1, 4, [2, 3], [1, 2, 3], 7, [5, [2, 4], 9]]
です。
コード:
input_freq = [[2,1,3],4,[2,3],7,1,[9,[4,2],5]]
res = []
def sortFreq(input_freq):
elements = []
list_of_elements = []
for each in input_freq:
if isinstance(each, list):
print "list"
list_of_elements.append(each)
each.sort()
else:
elements.append(each)
elements.sort()
print elements
print list_of_elements
sortFreq(input_freq)
予想される出力:
[1, 4, [2, 3], [1, 2, 3], 7, [5, [4, 2], 9]]
が、私のコードは、誤った結果を返します:あなたがにダウンあなたのように動作する必要があります
[[1, 2, 3], [2, 3], [5, 9, [4, 2]]]
'[9、[4,2]、5]'の合計はいくらですか? *フラット化された*要素の合計、したがって '9 + 4 + 2 + 5 == 20'? –
まず、ネストされたリストの要素の合計を使って、あなたはどこにいても見当たりません。 –
第二に、あなたは "再帰的なやり方"と言っていましたが、反復アルゴリズムを実装しました。それはあなたが目指しているものなのですか? –