今自分がやっていることはリストで[1,2,0,4,0,5,6,7,0,0,9,0,]のような引数が関数に入り、関数内ではリスト内の0を全部右端に寄せるということです。その際に他の要素の順番は変えません。
したがって、正しい答えは[1,2,4,5,6,7,9,0,0,0,0]となります。
自分の考えは
まず、num=0とし、goukei変数にcount()で数えた0の数を代入します。そしてインクリメントしnumがgoukeiと同じかずになるまでwhileで繰り返します。繰り返す内容は、indexでリスト内の最小のインデックスの0を取り出してindex変数に代入。
そして、arrrayの最後のインデックス(-1)に先程のindexを利用しarray[index]を代入して置き換えます。
ずっと考えてるのですがわかりません。お力添えをお願いします
def move_zeros(array): num=0 goukei=array.count(0) while num<=goukei: index=array.index(0) array[-1]=array[index] num+=1 return array
[1,2,0,1,0,1,0,3,0,1]が引数として入ると[1, 2, 0, 1, 0, 1, 0, 3, 0, 0]が返ってきちゃうみたいです。
移動させず配列の最後尾に上書きコピーしていますね。
回答3件
あなたの回答
tips
プレビュー