尾递归调用 高阶函数 map filter reduce
生活随笔
收集整理的這篇文章主要介紹了
尾递归调用 高阶函数 map filter reduce
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#!/user/bin/env python
# -*- coding:utf-8 -*-
# 1.函數遞歸調用,函數返回值如果是另一個函數,而不是一個確切值,返回的則是這個函數的地址,需要我們加上()后才可以調用使用,
# name="ceshi"
# def hs1(x):
# print(x)
# return hx #這里返回的就是一個調用的函數。
# def hx():
# print("我是韓系")
# c=hs1("hangsna")
# print(c)
# 例2:
# name="text"
# def tx(x):
# print(x)
# return ty
# def ty():
# name="ty"
# print(name)
# z=tx(name)
# q=z()
# print(q)#text 、ty、None因為ty沒有返回值所以會返回一個none。
# 2.匿名函數,沒有名稱的函數,優點是不占用內存空間,只有在調用的時候才會占用內存。匿名函數以lambda起始定義。
# 例:
# name="aliex"
# fun =lambda name:name+"sb"
# print(fun(name))
# 7.一個例題:數字列表[1,2,6,9,15]把列表里的數字變為平方做為一個新的列表輸出。
# 普通實現方式
# li1=[1,2,6,9,15]
# li2=[]
# for i in li1:
# i=i**2
# li2.append(i)
# # print(i)
# print(li2)
# 函數實現方式
# li1=[1,2,6,9,15]
# def add_one(x):
# return x+1
# def test(gn,y):
# li2=[]
# for i in y:
# z=gn(i)
# li2.append(z)
# return li2
# li3=test(add_one,li1)
# print(li3)
# map() lambda 實現方式
# li1=[1,2,6,9,15]
# map_test=list(map(lambda x:x**2,li1))
# print(map_test)
# map其它地方上的實現
# a="hellowword"
# res=set(map(lambda x:x.upper(),a))
# print(res) #map輸出的是一個迭代器,需要有個轉換,把數據取出。在python2.0輸出的都直接是列表
# filter高階函數的用法
# zi=["zs_sb","xz_sb","zee","zx_sb"]
# fs=list(filter(lambda z:not z.endswith("sb"),zi))
# fl=list(filter(lambda z:z.endswith("sb"),zi))#把符合某條件的元素取出來,組成新的迭代,用list取出成列表。 not是取反把不符合的
# #元素取出來
# print(fs)
# print(fl)
# from functools import reduce
# num1=[1,2,3,100]
# int2=reduce(lambda x,y:x+y,num1,0)
# print(int2)
# int3=reduce(lambda x,y:x*y,num1,1)
# print(int3)
# int4=reduce(lambda x,y:x+y,range(1,100),0)
# print(int4)
# i =0
# y=0
# while i <100:
# y = y+i
# i +=1
# print(y) #驗證1到100之間的和 和reduce函數的結合生成
# -*- coding:utf-8 -*-
# 1.函數遞歸調用,函數返回值如果是另一個函數,而不是一個確切值,返回的則是這個函數的地址,需要我們加上()后才可以調用使用,
# name="ceshi"
# def hs1(x):
# print(x)
# return hx #這里返回的就是一個調用的函數。
# def hx():
# print("我是韓系")
# c=hs1("hangsna")
# print(c)
# 例2:
# name="text"
# def tx(x):
# print(x)
# return ty
# def ty():
# name="ty"
# print(name)
# z=tx(name)
# q=z()
# print(q)#text 、ty、None因為ty沒有返回值所以會返回一個none。
# 2.匿名函數,沒有名稱的函數,優點是不占用內存空間,只有在調用的時候才會占用內存。匿名函數以lambda起始定義。
# 例:
# name="aliex"
# fun =lambda name:name+"sb"
# print(fun(name))
# 7.一個例題:數字列表[1,2,6,9,15]把列表里的數字變為平方做為一個新的列表輸出。
# 普通實現方式
# li1=[1,2,6,9,15]
# li2=[]
# for i in li1:
# i=i**2
# li2.append(i)
# # print(i)
# print(li2)
# 函數實現方式
# li1=[1,2,6,9,15]
# def add_one(x):
# return x+1
# def test(gn,y):
# li2=[]
# for i in y:
# z=gn(i)
# li2.append(z)
# return li2
# li3=test(add_one,li1)
# print(li3)
# map() lambda 實現方式
# li1=[1,2,6,9,15]
# map_test=list(map(lambda x:x**2,li1))
# print(map_test)
# map其它地方上的實現
# a="hellowword"
# res=set(map(lambda x:x.upper(),a))
# print(res) #map輸出的是一個迭代器,需要有個轉換,把數據取出。在python2.0輸出的都直接是列表
# filter高階函數的用法
# zi=["zs_sb","xz_sb","zee","zx_sb"]
# fs=list(filter(lambda z:not z.endswith("sb"),zi))
# fl=list(filter(lambda z:z.endswith("sb"),zi))#把符合某條件的元素取出來,組成新的迭代,用list取出成列表。 not是取反把不符合的
# #元素取出來
# print(fs)
# print(fl)
# from functools import reduce
# num1=[1,2,3,100]
# int2=reduce(lambda x,y:x+y,num1,0)
# print(int2)
# int3=reduce(lambda x,y:x*y,num1,1)
# print(int3)
# int4=reduce(lambda x,y:x+y,range(1,100),0)
# print(int4)
# i =0
# y=0
# while i <100:
# y = y+i
# i +=1
# print(y) #驗證1到100之間的和 和reduce函數的結合生成
轉載于:https://www.cnblogs.com/Centwei/p/9809660.html
總結
以上是生活随笔為你收集整理的尾递归调用 高阶函数 map filter reduce的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSAPC08台湾邀请赛_T1_skyl
- 下一篇: “我的父老乡亲”公益征文活动 ——讲述平