确定列表是否在没有内置的情况下是升序,降序还是都不行

时间:2019-10-29 15:40:59

标签: python python-3.x list

我正在尝试解决问题

  

给出num2 = num1 + num2; 字词列表,检查元素是否升序,   下降,或者不使用n都不下降   def个功能。

示例输入:

inbuilt

我可以轻松地使用list1 = [1,2,3,4] # Output -> In list1 elements are arranged in ascending order. list1 = [4,3,2,1] # Output -> In list1 elements are arranged in descending order. list1 = [1,3,2,4] # Output -> In list1 the elements are not arranged in any order. list1.sort()

我写的是什么...

list1.sort(reverse=True)

有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用for(条件)之类的循环,并比较第一个元素是否小于下一个元素,依此类推。

这是一个伪代码:

for(conditions)

if(element < next element)

keep going

if not then break and display
that the array is not arranged

注意:这将用于升序,仅通过更改if(condition)

即可实现降序。

答案 1 :(得分:0)

这是一个可能的解决方案:

ascending = True
descending = True
prev_index = 0
for index in range(1, len(list1)):
    ascending = ascending and list1[index] >= list1[prev_index]
    descending = descending and list1[index] <= list1[prev_index]
    prev_index = index

if ascending:
    print("Elements are arranged in ascending order")
elif descending:
    print("Elements are arranged in descending order")
else:
    print("Elements are not arranged in any order")

当列表中的所有元素都相等时(例如list1 = [1,1,1]),升序和降序均为True:在我的解决方案中,列表被视为升序。