Я наткнулся на интересный фрагмент кода в обзоре контроля качества и был удивлен его поведением. Мне любопытно, если это где-нибудь задокументировано.
for i in range(0, my_array.max(), 3)[:]:
# other code here
Мне было интересно узнать о необходимости [:]
после range
, поэтому я проверил его:
>>> range(0, 10, 3)
range(0, 10, 3)
>>> range(0, 10, 3)[:]
range(0, 12, 3)
Фактическая последовательность, определяемая этими диапазонами, идентична, но я не вижу такого поведения срезов, документированного где-либо в документации диапазона Python, поэтому мне было любопытно, что на самом деле здесь происходит.