二維數(shù)組是數(shù)組中的數(shù)組。 它是一個(gè)數(shù)組的數(shù)組。 在這種類型的數(shù)組中,數(shù)據(jù)元素的位置由兩個(gè)索引,而不是一個(gè)索引來(lái)引用。 所以它表示了一個(gè)包含行和列的數(shù)據(jù)的表。 在下面的二維數(shù)組的例子中,每個(gè)數(shù)組元素本身也是一個(gè)數(shù)組。
考慮每天記錄4次溫度的例子。記錄儀器有時(shí)會(huì)出現(xiàn)故障,我們無(wú)法記錄數(shù)據(jù)。 4天的這種數(shù)據(jù)可以如下所示呈現(xiàn)為二維數(shù)組。
第1天 - 11 12 5 2
第2天 - 15 6 10
第3天 - 10 8 12 5
第4天 - 12 15 8 6
上述數(shù)據(jù)可以表示為如下的二維數(shù)組。
T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]
可以使用兩個(gè)索引來(lái)訪問二維數(shù)組中的數(shù)據(jù)元素。 一個(gè)索引引用主數(shù)組或父數(shù)組,另一個(gè)索引引用內(nèi)部數(shù)組中的數(shù)據(jù)元素的位置。 如果只使用一個(gè)索引,那么將為該索引位置打印整個(gè)內(nèi)部數(shù)組。 下面的例子說(shuō)明了它是如何工作的。
from array import *
T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]
print(T[0])
print(T[1][2])
執(zhí)行上面示例代碼,得到以下結(jié)果 -
[11, 12, 5, 2]
10
要打印出整個(gè)二維數(shù)組,可以使用python的for循環(huán),如下所示。 使用行尾來(lái)打印出不同行中的值。
from array import *
T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]
for r in T:
for c in r:
print(c,end = " ")
print()
執(zhí)行上面示例代碼,得到以下結(jié)果 -
11 12 5 2
15 6 10
10 8 12 5
12 15 8 6
可以使用insert()方法并指定索引來(lái)在特定位置插入新的數(shù)據(jù)元素。
在下面的例子中,一個(gè)新的數(shù)據(jù)元素被插入索引位置是:2。
from array import *
T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]
T.insert(2, [0,5,11,13,6])
for r in T:
for c in r:
print(c,end = " ")
print()
執(zhí)行上面示例代碼,得到以下結(jié)果 -
11 12 5 2
15 6 10
0 5 11 13 6
10 8 12 5
12 15 8 6
可以通過(guò)使用數(shù)組索引重新賦值來(lái)更新整個(gè)內(nèi)部數(shù)組或內(nèi)部數(shù)組的某些特定數(shù)據(jù)元素。
from array import *
T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]
T[2] = [11,9]
T[0][3] = 7
for r in T:
for c in r:
print(c,end = " ")
print()
執(zhí)行上面示例代碼,得到以下結(jié)果 -
11 12 5 7
15 6 10
11 9
12 15 8 6
可以通過(guò)使用帶索引的del()方法重新指定值來(lái)刪除整個(gè)內(nèi)部數(shù)組或內(nèi)部數(shù)組的某些特定數(shù)據(jù)元素。 但是,如果需要?jiǎng)h除其中一個(gè)內(nèi)部數(shù)組中的特定數(shù)據(jù)元素,請(qǐng)使用上述更新過(guò)程。
from array import *
T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]
del T[3]
for r in T:
for c in r:
print(c,end = " ")
print()
執(zhí)行上面示例代碼,得到以下結(jié)果 -
11 12 5 2
15 6 10
10 8 12 5