【发布时间】:2013-07-07 23:51:49
【问题描述】:
元组似乎非常适合版本号比较(假设只有数字元素,在我的例子中是给定的)。我有两个由整数组成的元组形式的版本号。假设这些元组是:
minver = (1,2,3)
maxver = (1,2,9)
有没有一种简单而优雅的方法来获得从minver 到maxver 的“范围”作为list? IE。对于上述情况,我想得到一个像这样的list:
[(1,2,3), (1,2,4), (1,2,5), (1,2,6), (1,2,7), (1,2,8), (1,2,9)]
(注意:如果列表中缺少最后一个元素也可以,即如果返回的范围不包含最大值。)
range 函数显然不起作用(需要整数),但我也不想依赖元组恰好是 x 元素(在上述情况下,x = 3)。
例如,如果我有一个 minver tuple (1,) 如果 maxver tuple 包含三个值/元素(例如 (1,2,3)),则它应该被视为 (1,0,0)。
任何以 Python 方式执行此操作的方式(即优雅)?
【问题讨论】:
-
所以编辑引出了一个问题:
(1, 2)和(1, 3, 1)之间的范围是多少(例如) -
@JonClements: aaaah ... 现在我明白你的意思了... :) ... 很好,甚至没有想到这一点。让我们假设已知最大值,现在假设它是
9。你的回答让我开始了,我认为。目前正在修修补补。 -
我也在调整 ;)
-
好的 - 存在另一个不限于 0-9 的答案 - 比我认为的旧答案要好一些
-
如果仍然感兴趣 - 另一个应该更快的答案(当然,如果与您相关):)
标签: python-2.7 range tuples