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)

猜你喜欢

转载自blog.csdn.net/sisqzy86/article/details/82903652