Python 判斷列表是否已排好序

<code># ---------------------------------------------------------------------------------------
def is_list_sorted(lst): # 判斷列表是否已排好序
list_len = len(lst)
if list_len <= 1: # 列表只有一個元素,已排好序
return True

# 由首個元素和末尾元素猜測可能的排序規則
if lst[0] == lst[-1]: # 列表首末元素相同,則中間元素也一定相同
for elem in lst:
if elem != lst[0]: # 只要中間有一個元素與首元素不同,則沒排好序
return False
elif lst[0] < lst[-1]: # 列表元素升序,首元素小於末元素,升序
for i, elem in enumerate(lst[1:]): # enumerate函數的意義是什麼?
if elem < lst[i]: # ???
return False
else: # 列表元素降序,首元素大於末元素,降序
for i, elem in enumerate(lst[1:]):
if elem > lst[i]:
return False

return True
# ---------------------------------------------------------------------------------------


def main():
a = [2, 97, 86, 64, 50, 80, 3, 71, 8, 76]
print(is_list_sorted(a))
a.sort()
print(is_list_sorted(a))


if __name__ == '__main__':
main()
/<code>


分享到:


相關文章: