1. 程式人生 > >thinkpython第十章練習10-5

thinkpython第十章練習10-5

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)