thinkpython第十章練習10-5
阿新 • • 發佈:2018-11-20
Points:
>sorted()內建函式,不改變原來列表,新建一個升序排列的列表,並把這個新列表返回。
>.sort()方法,直接改變原來列表,返回值為None。
編寫一個名為is_sorted的函式,接收一個列表為形參,並當列表是按照升序排好序的時候返回True,否則返回False
def is_sorted(t): if t == sorted(t): return True else: return False t = [1,2,4,6,7,3] print(is_sorted(t)) t2 = ['a','c','b'] print(is_sorted(t2)) t3 = ['a','b','c'] print(is_sorted(t3))
如上,使用的是sorted()這個內建函式,返回一個升序排列好的新函式,不改變原來的列表
def is_sorted2(k): copy_k = k[:] k.sort() if copy_k == k: return True else: return False k = [1,2,3,4] print(is_sorted2(k)) k2 = [4,3,2,1] print(is_sorted2(k2)) k3 = ['a','b','c'] print(is_sorted2(k3))
如上,使用的是.sort()這個方法,返回None,但會改變原始列表k
使用在使用時,把列表k複製一份儲存到copy_k,然後跟已經被sort方法”重置”過的k比較,是否一樣(True)
http://greenteapress.com/thinkpython2/code/list_exercises.py
官方給出的答案
def is_sorted(t): return t == sorted(t)