我有一个整数列表,我需要确定它们是否按升序排列1(3,4,5,6等)。我想出了以下代码:
numbers = [1, 2, 3, 4, 5]
i = 0
for n in numbers[:-1]:
if numbers[i + 1] == numbers[i] + 1:
i+=1
if i == 4:
print "The numbers are in rising order"
这有效,但我想知道是否有更清晰/更好的方式来撰写这种陈述?我已经在其他一些相关问题上看到all
函数,但我不确定如何将其应用于此案例。可以使用all
编写吗?
答案 0 :(得分:5)
您可以执行以下操作:
all(x == y for x, y in enumerate(numbers, numbers[0]))
我们开始从数字[0]枚举数值。例如。我们采取的顺序:
numbers[0], numbers[0]
numbers[0] + 1, numbers[1]
numbers[0] + 2, numbers[2]
...
我们检查以上所有对是否相等。
答案 1 :(得分:4)
all(x+1==y for x,y in zip(numbers,numbers[1:]))
是一种方法
答案 2 :(得分:1)
另一种方式:
all([nums[index] + 1 == nums[index+1]
for index in range(len(nums)-1)])