使用'全部'确定数字是否按升序排列。

时间:2015-03-23 21:50:04

标签: python

我有一个整数列表,我需要确定它们是否按升序排列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编写吗?

3 个答案:

答案 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)])