Python高阶技巧7 -- 递归

一个案例:

扩展知识:

一个简单的例子:求n的阶乘!

def func(n):
    if n == 1:
        return 1
    else:
        return n * func(n-1)

print(func(5))  # 120

 

基于已经学习的python内容,我尝试写了一个排序算法,用于对列表中所有元素进行排序:

def sort_by_list(lst: list, ascending=True) -> list:
    """
    对列表中的所有元素进行排序
    :param lst: 输入列表
    :param ascending: 升序排列,默认为True
    :return: 返回一个排序好的列表
    """
    if len(lst) == 1:
        return lst
    else:
        while True:
            lst_pair = [*zip(lst[:-1], lst[1:])]
            TF = [*map(lambda x: x[1] >= x[0], lst_pair)]
            if False in TF:
                index = TF.index(False)
                lst[index], lst[index + 1] = lst[index + 1], lst[index]
                continue
            else:
                break
    if not ascending:
        lst.reverse()
    return lst

 

posted @ 2023-08-01 12:29  Peg_Wu  阅读(6)  评论(0编辑  收藏  举报