冒泡排序、遞歸階乘、斐波那契數列

arr = [19,2,30,9,12,90,1,45,23,6,7,8,10,6]
for i in range(len(arr)):
    for j in range(1,len(arr)-i):
        if(arr[j] < arr[j-1]):
            arr[j],arr[j-1] = arr[j-1],arr[j]
print(arr)



def fact(n):
    if n==1 or n==0:
        return 1
    else:
        return n*fact(n-1)


def fibonacci(n):
    a = 0
    b = 1
    if n <= 0:
        return a
    elif n == 1:
        return b
    else:
        for i in range(n-1):
            a, b = b, a+b

    return b



def fibonacci(n):
    if n<=0:
        return 0
    elif n==1:
        return 1
    else:
        return fibonacci(n-1)+fibonacci(n-2)


a = lambda b : 2*b
print(a(3))

a = lambda x,y : x*2 if x>y else y-2 #三元運算符
print(a(2,3))



dic = {'a':1, 'c':2, 'b':3}

def dicSorted(dic, isReverse=False):
    dic = sorted(dic.items(), key=lambda x: x[1], reverse=isReverse)
    return {k: v for k, v in dic}


print(dicSorted(dic,False))


list01 = [
    {'name':'zhnag','age':19},
    {'name': 'lisi', 'age': 20},
    {'name': 'wagnwu', 'age': 17}
]

def listDictSorted(list, param, isReverse=True):
    dic = sorted(list, key=lambda x: x[age], reverse=isReverse)
    return dic

print(listDictSorted(list01,'age'))


'''
    高階函數
'''
list01 = [1,2,5,6]
list02 = map(lambda x:x*2, list01);
print(list(list02))


list01 = [1,2,5,6]
list02 = [1,3,5,6]
list03 = map(lambda x,y:x*y, list01, list02);
print(list(list03))


from functools import reduce
list04 = reduce(lambda x,y: x+y, list02)
print(list04)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章