Я дал следующие три переменные:
start = 30 #starting value
end = 60 #ending value
slice_size = 6 #value difference per tuble
start
и end
- номера строк массива.Моя цель - создать массив / список кортежей, в котором каждый кортеж включает столько элементов, сколько определяет slice_size
.Небольшой пример: если start
и end
имеют вышеуказанные значения, первые четыре кортежа будут:
[[30,35], [36,41], [42,47], [48, 53], ...].
Но теперь приходит ключ: первое значение следующего кортежа начинается не с первого значения до + slice_size
, а с первого значения + slice_size/2
,Поэтому я хочу что-то вроде этого:
[[30,35], [33,38], [36,41], [39,44], ...].
Этосписок кортежей продолжается до тех пор, пока не будет достигнуто end
или до того, как оно будет достигнуто - до <=end
.Последнее значение в списке не может передавать значение end
.Значение slice_size
должно, конечно, всегда быть четным числом для правильной работы.
Моя попытка nooby выполняется циклом while:
condition = 0
i = 0
list = []
half_slice = int(slice_size /2)
while condition <= end:
list.append([start+int(slice_size/2)*i,start+((slice_size-1)+i*half_slice)])
condition = start+((slice_size-1)+i*int(slice_size/2))
i += 1
Дело в том, что это работает.Однако я знаю, что это полная чушь, и я хочу улучшить свои навыки.У вас есть предложение, как это сделать в несколько строк кода?