Структура простого понимания списка такова:
result = [ <some calculation on variable(s)> for <variable(s)> in <iterator> ]
В a для l oop это означает:
result = []
for <variable(s)> in <iterator>:
result.append(<some calculation on variable(s)>)
В вашем случае str[i:i+n]
is некоторые вычисления для переменной i , i
- это , переменная и range(0, len(str), n)
- это итератор
Каждая запись, создаваемая итератором range(0, len(str), n)
помещается в переменную i
, которая затем обрабатывается str[i:i+n]
как новый элемент для результирующего списка.
Функция range()
создает значения от начальной точки 0
до ( но не включая) конечную точку len(str)
с шагом по значению шага n
.
[] справа от str
(очень плохое название для переменной между прочим, так как имя типа строки) выбирает диапазон символов, определенных так же, как для функции range (), но разделенных двоеточиями вместо запятых.