如何在Python中创建函数来确定列表是否已排序?

如何在Python中创建函数来确定列表是否已排序?,python,python-3.x,function,sorting,Python,Python 3.x,Function,Sorting,我被要求检查列表是否使用函数排序,但是我在没有使用输入函数的情况下在函数中定义参数(lst)时遇到了问题。它说lst是未定义的,但我不知道如何在不使用输入函数的情况下更改它 def is_sorted(lst): lst = [] flag = 0 lst1 = lst[:] lst1.sort() if (lst1 == lst): flag = 1 if (flag) : return "True" e

我被要求检查列表是否使用函数排序,但是我在没有使用输入函数的情况下在函数中定义参数(lst)时遇到了问题。它说lst是未定义的,但我不知道如何在不使用输入函数的情况下更改它

def is_sorted(lst):
    lst  = []
    flag = 0
    lst1 = lst[:]
    lst1.sort()
    if (lst1 == lst):
        flag = 1
    if (flag) :
        return "True"
    else:
        return "False"

print (is_sorted(lst))

错误在于,在您第一次调用
lst
时(在
print(is_sorted(lst))
行中)没有定义lst

,您实际上没有给出
lst
值。在打印()之前,您需要一个
lst=[1,2,3]
(或其他东西)

但是,您可能已经过度考虑了此函数。我添加了一个简化版本,使用Python的
sorted
函数作为比较器

def is_sorted(lst):
    if (lst == sorted(lst)) or (lst == sorted(lst, reverse = True)):
        return "True"
    else:
        return "False"

lst = [3,1,2]
print (is_sorted(lst))
lst = [1,2,3]
print (is_sorted(lst))
lst = [3,2,1]
print (is_sorted(lst))
输出:

False
True
True

在您第一次调用
lst
时(在
print(is_sorted(lst))
行中),您实际上没有给出
lst
值。在打印()之前,您需要一个
lst=[1,2,3]
(或其他东西)

但是,您可能已经过度考虑了此函数。我添加了一个简化版本,使用Python的
sorted
函数作为比较器

def is_sorted(lst):
    if (lst == sorted(lst)) or (lst == sorted(lst, reverse = True)):
        return "True"
    else:
        return "False"

lst = [3,1,2]
print (is_sorted(lst))
lst = [1,2,3]
print (is_sorted(lst))
lst = [3,2,1]
print (is_sorted(lst))
输出:

False
True
True

为了理解错误,必须理解函数的参数和参数之间的区别

有用材料:

Python词汇表:


Python常见问题解答:

为了理解错误,必须理解函数参数和参数之间的区别

有用材料:

Python词汇表:


Python常见问题解答:

在您第一次调用
lst
时(在
print(is_sorted(lst))
行中),您实际上没有给出
lst
值。在
print()
之前,您需要一个
lst=[1,2,3]
(或其他)来指出-此函数将始终返回'True',因为参数lst将被覆盖并成为空列表。在您第一次调用
lst
时(在
print(is_sorted(lst))行中)
)实际上,您没有给
lst
一个值。在
print()
之前,您需要一个
lst=[1,2,3]
(或其他)来指出-此函数将始终返回“True”,因为参数lst将被覆盖并成为空列表。