Немного разбирая это,
data = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
arguments = [(i, row, 4, 8) for i, row in enumerate(data)]
print(arguments)
выходы (отформатированные)
[
(0, [1, 2, 3], 4, 8),
(1, [4, 5, 6], 4, 8),
(2, [7, 8, 9], 4, 8),
]
, которые являются кортежами howmany_within_range2
, будут выполнены, т.е.
howmany_within_range2(0, [1, 2, 3], 4, 8)
howmany_within_range2(1, [4, 5, 6], 4, 8)
howmany_within_range2(2, [7, 8, 9], 4, 8)
но параллельно.
enumerate
используется здесь для легкого доступа к индексу строки в списке data
;в противном случае вы просто получили бы кучу результатов без простого способа связать их с исходными строками данных.