在 Python 中,二維列表(或稱二維陣列)是一種能夠表示表格數據的資料結構,它由多個列表組成,每個列表代表一個「行」(row)。我們可以使用巢狀列表(nested lists)來創建和操作這種結構。本文將介紹如何處理和建立二維列表,並通過範例解釋如何輸入、處理二維列表,以及使用巢狀生成器來處理數據。
二維列表可以理解為列表中的列表。當我們處理這類數據時,可以通過迭代每個「行」並進一步迭代每個元素來處理所有數據。
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix:
for element in row:
print(element, end=' ')
print() # 換行
輸出結果:
1 2 3
4 5 6
7 8 9
在這個範例中,我們首先用兩層 for
迴圈遍歷每個「行」,然後進一步遍歷該行中的每個元素。外部的 for
迴圈處理每個行,而內部的 for
迴圈處理行中的元素,並將它們打印出來。
創建二維列表的方式有很多,我們可以手動定義每個「行」,也可以使用生成器來動態創建二維列表。
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
這是一個 3x3 的二維列表,手動定義了每個元素。這樣的列表可以方便地表示行列結構。
有時,我們希望使用生成器或 for
迴圈來動態創建二維列表,這樣能更靈活地處理列表大小及內容。
rows, cols = 3, 3
matrix = [[0 for _ in range(cols)] for _ in range(rows)]
print(matrix)
輸出結果:
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
這段程式碼使用了巢狀生成器來創建一個 3x3 的二維列表,所有的元素初始值為 0。
可以通過使用嵌套的迴圈來輸入二維列表。每個行的數據可以通過 input()
函數或從文件中讀取,然後添加到列表中。
rows = int(input("輸入行數: "))
cols = int(input("輸入列數: "))
matrix = []
for i in range(rows):
row = []
for j in range(cols):
value = int(input(f"輸入元素 [{i}][{j}]: "))
row.append(value)
matrix.append(row)
print("輸入的二維列表:")
for row in matrix:
print(row)
這段程式碼允許用戶動態輸入每個元素,並創建一個二維列表。當完成輸入後,會將整個二維列表輸出。
讓我們看一個具體的應用範例,這裡我們計算二維列表中所有元素的總和。
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
total_sum = 0
for row in matrix:
for element in row:
total_sum += element
print("二維列表中的元素總和:", total_sum)
這段程式碼通過巢狀的 for
迴圈遍歷整個二維列表,並將每個元素加到 total_sum
中,最終輸出總和。此範例展示了如何處理和操作二維列表的元素。
巢狀生成器是創建二維列表的一種簡便方式,特別適合處理大規模的數據生成。生成器語法非常簡潔,能夠快速定義出複雜的結構。
rows, cols = 3, 3
matrix = [[i * j for j in range(cols)] for i in range(rows)]
for row in matrix:
print(row)
輸出結果:
[0, 0, 0]
[0, 1, 2]
[0, 2, 4]
在這個範例中,我們使用巢狀生成器創建了一個 3x3 的二維列表,其中每個元素的值是 i * j
。這種生成方式非常直觀且高效,適合創建結構化數據。
二維列表(或稱二維陣列)是 Python 中強大的資料結構之一,可以輕鬆表示表格數據。通過巢狀列表,我們能夠創建、處理和輸出這些數據。生成器則進一步簡化了創建的過程,使得二維列表的操作更加靈活和高效。熟悉這些技術能夠幫助我們有效地處理各類數據集。
另外提個外話😆
身為共同創辦人我當然要來分享一下
台灣首發晶片設計教材要募資啦
趕快點擊去了解 👉 https://wlinny.com