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

Pythonのリスト内包表記を使用して、すべてのゼロを配列の最後に移動します


数値のリストが与えられたら、リスト内包表記を使用してすべてのゼロを最後に移動します。たとえば、[1、3、0、4、0、5、6、0、7]の結果は[1、3、4、5、6、7、0、0、0]です。

これは、リスト内包表記を使用した1行のコードです。結果を得るには、次の手順を参照してください。

  • 番号のリストを初期化します。

  • リストから非ゼロを生成し、リストからゼロを生成します。両方を追加します。結果をリストに保存します。

  • 新しいリストを印刷します。

# initializing a list
numbers = [1, 3, 0, 4, 0, 5, 6, 0, 7]
# moving all the zeroes to end
new_list = [num for num in numbers if num != 0] + [num for num in numbers if num == 0]
# printing the new list
print(new_list)
[1, 3, 4, 5, 6, 7, 0, 0, 0]

上記のコードを実行すると、次の結果が得られます。

出力

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

結論

チュートリアルに関して質問がある場合は、コメントセクションにその旨を記載してください。


  1. Pythonを使用してすべてのファイルをアルファベット順に一覧表示するにはどうすればよいですか?

    os.listdir関数を呼び出してディレクトリの内容のリストを取得し、sorted関数を使用してこのリストを並べ替えることができます。 例 >>> import os >>> list_dir = os.listdir('.') >>> list_dir = [f.lower() for f in list_dir]   # Convert to lower case >>> sorted(list_dir) ['dlls', 'doc', 'etc

  2. Pythonを使用して現在のディレクトリ内のすべてのサブディレクトリのリストを取得するにはどうすればよいですか?

    ディレクトリ内のすべてのサブディレクトリのリストを再帰的に取得するには、os.walk関数を使用できます。最初のエントリがすべてのサブディレクトリである3つのタプルを返します。 次のように使用できます: import os subdirs = [x[0] for x in os.walk('.')] print(subdirs) os.listdir関数を使用してディレクトリ(即時のみ)を一覧表示し、os.path.isdir関数を使用して一覧をフィルタリングすることもできます。 例 import os d = '.' subdirs = [os.path.