Python リストで配列を参照する方法

黄舟
リリース: 2016-12-16 16:19:50
オリジナル
5253 人が閲覧しました

この記事では Python リストについて紹介します。Python リストはコンピュータ言語で広く使用されています。Python リストの実際の応用スキルについて質問がある場合は、以下の記事を参照してください。 。

Python には配列のデータ構造はありませんが、リストは次のような配列と非常によく似ています:

a=[0,1,2]这时a[0]=0, a[1]=1, a[[2]=2,
ログイン後にコピー

しかし、疑問が生じます。つまり、配列 a を 0 から 999 まで定義したい場合はどうすればよいかということです。この場合、 a = range(0, 1000 ) が達成されます。または、 a = range(1000) として省略し、長さ 1000 で初期値がすべて 0 の a を定義したい場合、

a = [0 for x in range(0, 1000)]
ログイン後にコピー

は初期値を持つ 10*10 の 2 次元配列を定義します。 0の。その後、インターネット上でリテラル 2 次元配列のより簡単な方法を見つけました。b = [[0]*10]*10 は、10*10 を初期値 0 の 2 次元配列として定義します。

a=[[0 for x in range(10)] for y in range(10)]
ログイン後にコピー

と比較してください: print a==b の結果は True です。しかし、a の代わりに b の定義方法を使用した後、正常に実行できた以前のプログラムも問題が発生しました。注意深く分析した結果、a[0][0]=1 の場合は a[0][ のみという違いが見つかりました。 0] は 1、その他はすべて 0 です。 b[0][0]=1 の場合、a[0][0]、a[1][0]、a[9,0] はすべて 1 になります。このことから、大きな配列内の 10 個の小さな 1 次元データはすべて同じ参照を持っている、つまり、同じアドレスを指していることがわかります。したがって、 b = [[0]*10]*10 は従来の 2 次元配列に準拠しません。

同時にテストした後: c=[0]*10 の定義は、上記の同じ参照の問題がなければ、c=[0 for x in range(10)] と同じ効果があると推定されます。配列 c の定義は値型 Multiply で、前の b は 1 次元配列が参照であるため、型の乗算を使用しています (C# の値型と参照型を借用しています。適切かどうかはわかりません)。 上記の記事は Python リストの部分的な紹介です。

上記は Python リストで配列を参照する方法です。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!