Undoing list comprehension and turning it in nested for loops

Viewed 33

Does anyone know how I can turn the following list comprehension into two nested for loops? When I try and do it I get errors.

data_list = [self.y[a][b] for a in range(side_1, side_2) for b in range(corner_1, corner_2)]
2 Answers
data_list = []
for a in range(side_1, side_2):
    for b in range(corner_1, corner_2):
        data_list.append(self.y[a][b])

If you need to iterate over every row / column index pair, you should use itertools.product() as a more concise solution than a nested for loop:

from itertools import product

result = []
for a, b in product(range(side_1, side_2), range(corner_1, corner_2)):
    result.append(self.y[a][b])
Related