ホームページ > バックエンド開発 > Python チュートリアル > Python で 2D 配列を効率的に初期化するにはどうすればよいですか?

Python で 2D 配列を効率的に初期化するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-04 17:35:12
オリジナル
916 人が閲覧しました

How Can I Efficiently Initialize a 2D Array in Python?

Python での 2 次元配列の初期化

Python を使用する場合、2 次元配列を初期化する必要がある場合があります。または「リストのリスト」。ネストされたループを利用した提供されたコード スニペットはタスクを実行しますが、最も効率的なアプローチではない可能性があります。

簡略化された初期化

2 つの要素を初期化するより簡潔な方法次元配列はリスト内包表記を使用します:

t = [[0] * 3 for i in range(3)]
ログイン後にコピー

このコードはすべての要素が 0 に設定された 3x3 配列。

注意事項

便利に思えるかもしれませんが、配列を初期化するには [[v] * n] * n を使用します。予期しない動作を引き起こす可能性があります。以下のコードに示すように、このアプローチでは同じリスト参照のコピーが作成され、その結果、配列全体で参照が共有されます。

a = [[0] * 3] * 3
a[0][0] = 1
print(a)  # Output: [[1, 1, 1], [1, 1, 1], [1, 1, 1]]
ログイン後にコピー

予想とは異なり、配列のすべての要素が 1 になります。これは、それぞれの要素が 1 になるためです。 sublist は元のリストへの参照を保持しており、1 つの要素を変更すると配列全体に影響します。

要約すると、Python で 2 次元配列を初期化するには list を使用します。理解を容易にするため、参照共有の問題により [[v] * n] * n の使用を避けてください。

以上がPython で 2D 配列を効率的に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート