将列表与条件语句进行比较

时间:2019-05-17 12:29:34

标签: python python-3.x list sorting

我尝试过一个练习,如果列表按升序排序,它希望我返回True,否则返回False。 List1应该返回True,而List2应该返回False。

我尝试创建一个名为sort的新变量,以使用sort方法对其进行排序并将其与未修改的列表进行比较,并使用for循环来检查已排序列表和未修改的列表中的元素是否以相同的顺序相互匹配。我不太确定如何正确解决此问题,因为两者都会得到False回报。

def is_sorted(t):
    sort = t.sort()
    for element in t:
        if t == sort:
            return True
        else:
            return False

def main():
    list1 = [1,2,2]
    print(is_sorted(list1))
    list2 = ['b', 'a']
    print(is_sorted(list2))

main()

1 个答案:

答案 0 :(得分:4)

list.sort对列表进行原位排序,然后返回None。 来自文档:https://docs.python.org/3/tutorial/datastructures.html

  

list.sort(key = None,reverse = False)
  对列表中的项目进行排序

您想使用sorted来返回已排序的列表

  

已排序(可迭代,*,键=无,反向=假)
  从可迭代的项目中返回一个新的排序列表。

您也可以只比较列表,而不是比较每个元素

def is_sorted(t):
    #Sort the list and check if it the same as the original list
    return sorted(t) == t

输出将为

print(is_sorted([1,2,2]))
#True
print(is_sorted(['b', 'a']))
#False