2-D arrays
Handout
This page needs a recent browser (with SharedArrayBuffer support). Please update Chrome, Edge, Firefox or Safari to the latest version.
A grid of rows and columns
- A 2-D array is a list whose items are themselves lists.
- It models a grid or table: rows of columns.
- Each inner list is one row.
grid = [[1, 2, 3],
[4, 5, 6]]
print(grid)
Reach one cell
- Use two indexes: first the row, then the column.
grid[row][col]— both count from 0 in Python.
grid = [[1, 2, 3], [4, 5, 6]]
print(grid[0][1]) # 2
print(grid[1][2]) # 6
A nested loop visits every cell
- The outer loop walks the rows; the inner loop walks the columns.
for row in grid:gives one row (a list) at a time.
grid = [[1, 2], [3, 4]]
for row in grid:
for value in row:
print(value)
Add up a grid
- Keep a running
totaland add every cell with a nested loop.
grid = [[1, 2, 3], [4, 5, 6]]
total = 0
for row in grid:
for value in row:
total = total + value
print(total) # 21
In the exam: ARRAY[1:rows, 1:cols]
- Pseudocode writes a 2-D array with two ranges, counting from 1.
DECLARE Grid : ARRAY[1:2, 1:3] OF INTEGER
FOR r ← 1 TO 2
FOR c ← 1 TO 3
OUTPUT Grid[r, c]
NEXT c
NEXT r
Common mistakes
- Use two indexes:
grid[row][col]. - The outer loop walks the rows, the inner loop the columns.
Now you try
- Use a nested loop or two indexes.
- Press Check answer to test your code.
Explore
A 2-D array is a grid
Rows of columns; reach a cell with grid[row][col].
From the grid, store the value in row 1, column 2 in a variable x (the answer is 6).
Click Run to see the output here.
Add up every number in the 2-D list grid with a nested loop. Store the total in total (the answer is 21).
Click Run to see the output here.
Use a nested loop to print a 3-by-3 square of stars: three lines, each with three * characters.
Click Run to see the output here.