【问题标题】:How can I make the program check if input = sorted list?如何让程序检查输入是否为排序列表?
【发布时间】:2022-12-09 07:38:58
【问题描述】:

我创建了一个程序,它接受用户输入的整数,并在没有排序功能的情况下按升序(从最低到最高)的顺序在列表中对它们进行排序。我正在尝试根据列表是否按升序输出“已排序”或“未排序”,但由于某种原因它不起作用。这是我的代码:

     c = input("Enter list values all on one line, separated by space\n")
     values = c.split()

    for i in range (0,len(values)):
        values[i]=int(values[i])

    print("Original list:", values)

    for i in range(len(values)):
        for j in range(i+1, len(values)):
            if values[i]>values[j]:
                values[j],values[i]=values[i],values[j]
 #these statements here don't seem to be working
               if c!= values:
                     print("Not in order")
                     break

                if c== values:
                     print("In order")
                     break
        

【问题讨论】:

    标签: python list sorting


    【解决方案1】:

    您可以添加一个条件来检查列表是否按升序排序。您可以将列表中每个元素的值与下一个元素进行比较,以确定列表是否按升序排列。这是一个例子:

    
    c = input("Enter list values all on one line, separated by space
    ")
    values = c.split()
    
    for i in range (0,len(values)):
        values[i]=int(values[i])
    
    print("Original list:", values)
    
    for i in range(len(values)):
        for j in range(i+1, len(values)):
            if values[i]>values[j]:
                values[j],values[i]=values[i],values[j]
    
    # check if the list is sorted in ascending order
    if all(values[i] <= values[i+1] for i in range(len(values)-1)):
        print("In order")
    else:
        print("Not in order")
    

    在此示例中,all 函数用于检查列表中的所有元素是否按升序排列。如果all函数返回True,说明列表是升序排列的,否则说明列表不是升序排列的。

    【讨论】:

      猜你喜欢
      • 2012-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多