假设我有2个变量x
和y
,并且我想遍历两者之间的所有值,而又不知道x
或y
是否更大:
if(x>y):
for i in range(y,x):
#Code
elif(x<y):
for i in range(x,y):
#Code
在没有所有if-else
条件的情况下,用Python的方式可以做到这一点吗?顺序无关紧要,降序或升序都可以,但是一般的答案会很好!
答案 0 :(得分:8)
怎么样:
for i in range(min(x,y), max(x,y)):
...
答案 1 :(得分:5)
答案 2 :(得分:4)
如何对它们进行预先排序?
smaller, larger = sorted((a,b))
for elem in range(smaller, larger):
# ...
或更短:
for elem in range(*sorted((a,b))):
# ...
答案 3 :(得分:3)
您可以检查max
和min
:
def custom_range(x, y):
M, m = max(x, y), min(x, y)
yield from xrange(m, M) # or range in python3
答案 4 :(得分:3)
只需使用min
和max
即可:
for i in range( min(x,y), max(x,y) ):
...