2次元リスト
Pythonのリストは、さまざまなタイプの要素を含むことができます。整数、文字列、浮動小数点数などを含めることができます。また、他のリストを含むこともできます:
l = [4, 5, 'hi', 3.14, ['how', 'are', 'you', '?'], 64]
print(l[2]) # hi
print(l[2][0]) # h
print(l[-1]) # 64
print(l[4]) # ['how', 'are', 'you', '?']
inner = l[4]
print(inner[1]) # are
print(l[4][1]) # are
これは、Pythonで他のリストを含むリストの例です。ネストされたリストに対する操作は、外側のリストと全く同じです。
append
で要素を追加したり、pop
で削除したりできます。したがって、リストの中のネストされたリストにアクセスするのと同じように、インデックス付けが機能します。文字列のリストを持っていて、各要素に
[インデックス]
でアクセスできるのと似ています:greetings = [
'hi',
'hello',
'hey there',
'hey!'
]
print(greetings[0])
# hi
print(greetings[2])
# hey there
この方法で、数字の行列を保持することもできます:
multiplication_table = [
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[2, 4, 6, 8, 10, 12, 14, 16, 18],
[3, 6, 9, 12, 15, 18, 21, 24, 27],
[4, 8, 12, 16, 20, 24, 28, 32, 36],
[5, 10, 15, 20, 25, 30, 35, 40, 45],
[6, 12, 18, 24, 30, 36, 42, 48, 54],
[7, 14, 21, 28, 35, 42, 49, 56, 63],
[8, 16, 24, 32, 40, 48, 56, 64, 72],
[9, 18, 27, 36, 45, 54, 63, 72, 81]
]
print(multiplication_table[0])
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(multiplication_table[2])
# [3, 6, 9, 12, 15, 18, 21, 24, 27]
このようにして、各行に個別にアクセスします。その後、リストの要素にアクセスするのと同じように、行の各要素にアクセスできます:
print(multiplication_table[2]) # [3, 6, 9, 12, 15, 18, 21, 24, 27]
l = multiplication_table[2] # l is now [3, 6, 9, 12, 15, 18, 21, 24, 27]
print(l[0]) # 3
print(l[1]) # 6
print(l[-1]) # 27
# Or access the elements directly
print(multiplication_table[2][0]) # 3
print(multiplication_table[2][1]) # 6
print(multiplication_table[2][-1]) # 27
最初のインデックスは行列から選ぶ「行」を示し、2番目のインデックスは「列」を示します。したがって、2次元リストから要素にアクセスする構文は
two_d[row][column]
です。 チャレンジ
整数
n
が与えられたとき、サイズが の2次元の正方形リストを作成してください。この正方形を3つの部分に分けます。対角線の上の部分、対角線上の部分、そして対角線の下の部分です。上の部分を
0
で塗り、対角線上の部分を 1
で塗り、下の部分を 2
で塗ります。プログラムの入力は単一の整数
n
で、正方形のサイズを表します。プログラムの出力には、塗られた正方形を含めてください。
入力 | 出力 |
4 | 1 0 0 0
2 1 0 0
2 2 1 0
2 2 2 1 |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB