Я думаю, вам нужно сначала четко определить лог c за корзиной. Одно из решений - определить список для всех шагов, на которых range
изменяется на:
Для примера это приводит к:
steps = [(0, 10, 5), (10, 100, 10), (100, 200, 25)]
Как только мы узнаем, куда go, довольно легко построить все бункеры:
Здесь, Я определяю пользовательскую функцию для клавиш вывода, используя str.format
.
def f(v1, v2):
return "{}-{}".format(str(v1), str(v2))
Затем создайте список:
# List + dict comprehension
out = {f(min_, max_): [[i+1, i+step] for i in range(min_, max_, step)] for min_, max_, step in steps}
# Or with nested for loops
out = {}
for min_, max_, step in steps:
bin_ = []
for i in range(min_, max_, step):
bin_.append([i+1, i+step])
out[f(min_, max_)] = bin_
print(out)
вывод :
# {
# '0-10': [[1, 5], [6, 10]],
# '10-100': [[11, 20], [21, 30], [31, 40], [41, 50], [51, 60], [61, 70], [71, 80], [81, 90], [91, 100]],
# '100-200': [[101, 125], [126, 150], [151, 175], [176, 200]]
# }
Надеюсь, что это поможет!