Back-To-School Deals - hours only!Up to 80% off on all courses and bundles.-Close
Introduction to nested lists
Iterating over nested lists
Modifying nested lists
Working with multiple lists
15. Transposing nested lists
Summary

Instruction

Very well done! Now, let's tackle a classic programming problem. Suppose we need to transpose a rectangular nested list, i.e. change its rows into columns:

transpose

How can we do that in Python? Take a look:

numbers_list = [
  [1, 4, 7, 10],
  [2, 5, 8, 11],
  [3, 6, 9, 12]
]

list_to_return = []
for i in range(len(numbers_list[0])):
  new_row = []
  for j in range(len(numbers_list)):
    new_row.append(numbers_list[j][i])
  list_to_return.append(new_row)

Note what happens:

  1. In the outer loop (i), we iterate over the length of the first nested list, i.e. over the "columns".
  2. Inside the loop, we create a variable for a new row (an empty list).
  3. In the inner loop (j), we iterate over the outer list's length, i.e. over the "rows".
  4. Inside the inner loop, we add the i-th element from each nested list:
  5. We add the new row to the new list.

Exercise

Write a function named vertical_flip(input_list) that accepts a 2D list and flips it vertically:

flip

Do not return a copy of the list. Instead, modify the original one.

Stuck? Here's a hint!

Use the following nested for loops:

for i in range(len(input_list)):
  for j in range(len(input_list[i]) // 2):

Inside the nested loop, swap two elements:

input_list[i][j]
and
input_list[i][len(input_list[i]) - j - 1]