获取两个值之间的整数

时间:2017-10-28 18:21:15

标签: python integer

对于某些坐标处理,我需要能够找到2个值之间的整数。我知道你可以使用range(),但是即使你切换2个值我也需要它。 range(x, y)不会提供与range(y, x)相同的结果。这样做有诀窍吗?

编辑:Torxed的评论正是我所需要的:范围(min(x,y),max(x,y))

2 个答案:

答案 0 :(得分:1)

建议使用3个不同的选项:

正如@Torxed's comment中提出的那样:

range(min(x, y), max(x, y))

正如@tobias_k's comment中提出的那样:

range(*sorted([x, y]))

或者我的,使用ternary条件:

range(x, y) if x < y else range(y, x)

答案 1 :(得分:0)

不太确定是什么问题,只是潦草地写了一些奇怪的代码。

这两种方法都有用,这取决于我们是否要保持“丢弃'b'”行为。

range(2,5)
#[2, 3, 4]
range(5,2,-1)
#[5, 4, 3]
range(5,2,2 * (5<2) - 1)
#[5, 4, 3]

##### Approach A
a = 5;b = 2
range(a, b, 2*(a<b) -1 )
#[5, 4, 3]

a = 2; b = 5
range(a, b, 2*(a<b) -1 )
#[2, 3, 4]


##### Approach B from @tobias_k
a = 5;b = 2
range(*sorted([a,b]))
#[2, 3, 4]

a = 2;b = 5
range(*sorted([a,b]))
#[2, 3, 4]