Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでゼロをリストの最後にインプレースで移動


数値numsのリストがあるとすると、リストをインプレースで更新して、すべてのゼロをリストの最後に配置する必要があります。また、他の要素の相対的な順序は変更しないでください。これは、O(1)の追加スペースで解決する必要があります。

したがって、入力が[2,0,1,4,0​​,5,6,4,0,1,7]の場合、出力は[2、1、4、5、6、4、1]になります。 、7、0、0、0]

これを解決するには、次の手順に従います-

  • Lのサイズが0と同じ場合、
    • 空白のリストを返す
  • k:=0
  • 0からLのサイズの範囲のiについては、
    • L [i]が0と同じでない場合、
      • L [k]:=L [i]
      • k:=k + 1
  • kからLのサイズまでの範囲のjについては、
    • L [j]:=0
  • Lを返す

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def solve(self, L):
      if len(L) == 0:
         return []
         k = 0
         for i in range(len(L)):
            if L[i] != 0:
               L[k] = L[i]
               k+=1
         for j in range(k,len(L)):
            L[j] = 0
         return L
ob = Solution()
L = [2,0,1,4,0,5,6,4,0,1,7]
print(ob.solve(L))

入力

[2,0,1,4,0,5,6,4,0,1,7]

出力

[2, 1, 4, 5, 6, 4, 1, 7, 0, 0, 0]

  1. タプルのリストをPythonのリストのリストに変換します

    要素がタプルであるPythonリストが提供される場合があります。次に、これらのタプルをさらに処理するためにリストに変換する必要があるデータ処理要件がある場合があります。この記事では、タプルのリストをリストのリストに変換する方法を説明します。 リスト内包表記付き これは、各要素をループするforループを作成し、list関数を適用してリストのリストを作成する簡単なアプローチです。 例 listA = [('Mon', 3), ('Wed', 4), ('Fri', 7, 'pm')] # Given list print("

  2. Pythonでゼロを移動する

    いくつかの数値を保持する配列があるとします。ゼロ以外の値とゼロ値があります。したがって、他の数値の相対的な順序を変更せずに、すべてゼロを右側に送信する必要があります。したがって、配列が[0、1、5、0、3、8、0、0、9]のような場合、最終的な配列は[1、5、3、8、9、0、0、0、0になります。 ] これを解決するには、次の手順に従います- インデックス=0と仮定します for i=0からAの長さ A [i]!=0の場合、 A [インデックス]:=A [i] index:=index + 1 for i=Aの長さのインデックス A [i] =0 例 理