Python 如何测试列表是否按升序排序
这就是练习的问题:编写一个函数,检查列表是否按升序排序Python 如何测试列表是否按升序排序,python,Python,这就是练习的问题:编写一个函数,检查列表是否按升序排序 def ascending(lst): for k in range(0,len(lst)): if lst[k] < lst[k+1]: print('Ok') else: print('NOk, the number ' + str(lst[k]) + ' is greater than his next ' + str(lst[k+1]))
def ascending(lst):
for k in range(0,len(lst)):
if lst[k] < lst[k+1]:
print('Ok')
else:
print('NOk, the number ' + str(lst[k]) + ' is greater than his next ' + str(lst[k+1]))
return 'Bye!'
lst = [1,3,2,4,5]
print(ascending(lst))
def升序(lst):
对于范围(0,len(lst))内的k:
如果lst[k]
我期望输出:好的,好的,不,数字3比他的下一个2大,好的。。。我明白了,但是,在问题的最后,错误消息显然是“IndexError:列表索引超出范围”。我知道问题在if语句的末尾,因为对于k=4,k+1=5(超出范围),但我不知道如何解决它。您的问题在这里:
for k in range(0,len(lst)):
if lst[k] < lst[k+1]:
另一种方法:
如果您的任务像“测试列表是否按升序排序”这样简单;那么一个简单的函数怎么样,比如:
def issorted(lst):
return lst == sorted(lst)
print('Is sorted: ', issorted([5, 4, 1, 2]))
print('Is sorted: ', issorted([1, 2, 3, 4]))
print('Is sorted: ', issorted(['a', 'b', 'd', 'c']))
print('Is sorted: ', issorted(['w', 'x', 'y', 'z']))
哪些产出:
Is sorted: False
Is sorted: True
Is sorted: False
Is sorted: True
range(0,len(lst)-1)
应该这样做。如果你知道问题是k变得太大,你能想办法避免(或抓住)吗?
Is sorted: False
Is sorted: True
Is sorted: False
Is sorted: True