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)