如何在Python中创建函数来确定列表是否已排序?
我被要求检查列表是否使用函数排序,但是我在没有使用输入函数的情况下在函数中定义参数(lst)时遇到了问题。它说lst是未定义的,但我不知道如何在不使用输入函数的情况下更改它如何在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
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将被覆盖并成为空列表。