Кортежи кажутся идеальными для сравнения версий (при условии, что в моем случае указаны только числовые элементы). У меня есть два номера версии в виде кортежей, состоящих из целых чисел. Скажем, эти кортежи:Диапазон между двумя кортежами целых чисел?
minver = (1,2,3)
maxver = (1,2,9)
есть простой и элегантный способ, чтобы получить «диапазон» от minver
до maxver
как list
? То есть для вышеприведенного случая я хотел бы получить list
так:
[(1,2,3), (1,2,4), (1,2,5), (1,2,6), (1,2,7), (1,2,8), (1,2,9)]
(Примечание: это также хорошо, если последний элемент отсутствует в списке, то есть, если возвращаемый диапазон делает не включать максимум значение.)
range
функция явно не работает (ожидает целых чисел), но я также не хочу полагаться на кортежах будучи точно x
элементов (х = 3
в приведенном выше случае).
Например, если у меня есть minver
tuple
(1,)
оно должно рассматриваться как (1,0,0)
если maxver
tuple
содержит три значения/элементы (такие, как (1,2,3)
).
Любой способ сделать это с помощью pythonic (элегантно)?
Поэтому редактирование задает вопрос: каков диапазон между '(1, 2)' и '(1, 3, 1)' (например) –
@JonClements: aaaah ... now Я понял, что вы имеете в виду ... :) ... очень хороший момент, даже не подумал об этом. Предположим, что для него известен максимум, и предположим, что теперь это '9'. Ваш ответ заставляет меня начать, я * думаю *. Трюк в данный момент. – 0xC0000022L
Я просто настраиваю;) –