获取两个值之间的整数

2024-10-01 15:34:29 发布

您现在位置:Python中文网/ 问答频道 /正文

对于一些坐标处理,我需要能够找到2个值之间的整数。我知道您可以使用range()来实现这一点,但即使在切换2个值时,我也需要它来工作。range(x, y)不会给出与range(y, x)相同的结果。有什么诀窍吗?你知道吗

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


Tags: 编辑评论range整数minmax诀窍个值
2条回答

3种不同的建议:

^{}所述:

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

^{}所述:

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

或者我的,使用ternary条件:

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

不太清楚问了什么,只是乱写了一些奇怪的代码。你知道吗

这两种方法都是有用的,这取决于我们是否希望保持“丢弃‘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]

相关问题 更多 >

    热门问题