この記事では 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 サイト (m.sbmmt.com) に注目してください。