python内置函数简单谈论

在编写python程序时或工作脚本时,需要完成某个功能,可以选择编写一个具体的函数达到目的,当然也可以通过匿名/Python 内建函数来完成。本问讲述常见的Python匿名、内建函数---lambda,map,filter,reduce .

实例说明

2.1 Lambda 是一个匿名函数,
其语法为:lambda parameters:express
parameters:可选,通常是逗号分隔的变量表达式形式,即位置参数。
expression:不能包含分支或循环(但允许条件表达式),也不能包含return(或yield)函数。如果为元组,则应用圆括号将其包含起来。
调用lambda函数,返回的结果是对表达式计算产生的结果。
根据参数是否为2的倍数 返回yes or no

  1. In [21]: s = lambda x:"yes" if x%2 == 0 else "no"
  2. In [22]: s(3)
  3. Out[22]: 'no'
  4. In [24]: s(4)
  5. Out[24]: 'yes'

上面例子中,将if...else语句缩减为单一的条件表达式,语法为:

  1. expression1 if A else expression2

如果A为True,条件表达式的结果为expression1,否则为expression2 。
使用匿名函数的优点是代码简洁 ,但是不宜读 ,推荐 for ..in ...if  语法进行遍历迭代。

2.2 filter 过滤
其语法为 filter(function, sequence)
意义是:对sequence中的item 依次迭代调用function(item),根据执行结果为True或者False来保留或者丢弃该元素。并将保留的item组成一个List/String/Tuple(取决于sequence的类型 )
filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

  1. In [15]: filter(lambda x:True if x % 3 == 0 else False, range(10))
  2. Out[15]: [0, 3, 6, 9] #返回list
  3. In [17]: filter(lambda x:True if x % 3 == 0 else False, (1,2,3,5,6,7,8,9,10))
  4. Out[17]: (3, 6, 9) #返回Tuple 元组

2.3 map 映射
其语法为map(function, sequence):
map()的用法和filter()类似,也是将序列放入函数进行运算,但是,不论运算结果为什么,map()将返回结果也即返回的结果元素个数和sequence一样多,filter是返回符合条件的值。这是map()和filter()的主要区别。请注意,filter()和map()中的function都必要有一个返回值。同样获取能否被3整除的值,map 返回的是True/False 列表,filter返回的是符合条件的元素结果集。

  1. In [18]: list(map(lambda x:True if x % 3 == 0 else False, range(10)))
  2. Out[18]: [True, False, False, True, False, False, True, False, False, True]

2.4 reduce
其语法为 reduce(function, sequence, starting_value)
意义是:对sequence中的item 依次调用function。reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
如果有starting_value,还可以作为初始值调用,比如1-100的list求和:

  1. In [11]: def add(x,y):
  2.     ...: return x + y
  3.     ...:
  4. In [12]: reduce(add, range(1, 100))
  5. Out[12]: 4950
  6. In [13]: reduce(add, range(1, 10))
  7. Out[13]: 45
  8. # 带上 starting_value 参数,相当于 1+2+3+4+5+6+7+8++9+10+20
  9. In [14]: reduce(add, range(1, 10),20)
  10. Out[14]: 65

三 小结
   本文总结了python内置函数和匿名函数,在编程时合理的运用能够极大的提高开发效率。
  推荐 https://www.python.org/dev/peps/pep-0289/

https://www.imdb.com/list/ls085858184/
https://www.imdb.com/list/ls085858184/?ref_=otl_R
https://www.imdb.com/list/ls085858184/?ref_=otl_zj
https://www.imdb.com/list/ls085858359/
https://www.imdb.com/list/ls085858359/?ref_=otl_9
https://www.imdb.com/list/ls085858359/?ref_=otl_bh
https://www.imdb.com/list/ls085858311/
https://www.imdb.com/list/ls085858311/?ref_=otl_j
https://www.imdb.com/list/ls085858311/?ref_=otl_dz
https://www.imdb.com/list/ls085858330/
https://www.imdb.com/list/ls085858330/?ref_=otl_A
https://www.imdb.com/list/ls085858330/?ref_=otl_ek
https://www.imdb.com/list/ls085858368/
https://www.imdb.com/list/ls085858368/?ref_=otl_3
https://www.imdb.com/list/ls085858368/?ref_=otl_lf
https://www.imdb.com/list/ls085858324/
https://www.imdb.com/list/ls085858324/?ref_=otl_S
https://www.imdb.com/list/ls085858324/?ref_=otl_xp
https://www.imdb.com/list/ls085870279/
https://www.imdb.com/list/ls085870279/?ref_=otl_V
https://www.imdb.com/list/ls085870279/?ref_=otl_at
https://www.imdb.com/list/ls085870216/
https://www.imdb.com/list/ls085870216/?ref_=otl_i
https://www.imdb.com/list/ls085870216/?ref_=otl_wa
https://www.imdb.com/list/ls085870240/
https://www.imdb.com/list/ls085870240/?ref_=otl_U
https://www.imdb.com/list/ls085870240/?ref_=otl_uo
https://www.imdb.com/list/ls085870246/
https://www.imdb.com/list/ls085870246/?ref_=otl_m
https://www.imdb.com/list/ls085870246/?ref_=otl_na
https://www.imdb.com/list/ls085870280/
https://www.imdb.com/list/ls085870280/?ref_=otl_Q
https://www.imdb.com/list/ls085870280/?ref_=otl_iu
https://www.imdb.com/list/ls085870288/
https://www.imdb.com/list/ls085870288/?ref_=otl_8
https://www.imdb.com/list/ls085870288/?ref_=otl_cw
https://www.imdb.com/list/ls085870451/
https://www.imdb.com/list/ls085870451/?ref_=otl_Q
https://www.imdb.com/list/ls085870451/?ref_=otl_sg
https://www.imdb.com/list/ls085870475/
https://www.imdb.com/list/ls085870475/?ref_=otl_F
https://www.imdb.com/list/ls085870475/?ref_=otl_dr
https://www.imdb.com/list/ls085870413/
https://www.imdb.com/list/ls085870413/?ref_=otl_2
https://www.imdb.com/list/ls085870413/?ref_=otl_eq
https://www.imdb.com/list/ls085870436/
https://www.imdb.com/list/ls085870436/?ref_=otl_8
https://www.imdb.com/list/ls085870436/?ref_=otl_ue
https://www.imdb.com/list/ls085870422/
https://www.imdb.com/list/ls085870422/?ref_=otl_6
https://www.imdb.com/list/ls085870422/?ref_=otl_wi
https://www.imdb.com/list/ls085870445/
https://www.imdb.com/list/ls085870445/?ref_=otl_2
https://www.imdb.com/list/ls085870445/?ref_=otl_aa
https://www.imdb.com/list/ls085870485/
https://www.imdb.com/list/ls085870485/?ref_=otl_1
https://www.imdb.com/list/ls085870485/?ref_=otl_jx
https://www.imdb.com/list/ls085870488/
https://www.imdb.com/list/ls085870488/?ref_=otl_a
https://www.imdb.com/list/ls085870488/?ref_=otl_qi
https://www.imdb.com/list/ls085870951/
https://www.imdb.com/list/ls085870951/?ref_=otl_0
https://www.imdb.com/list/ls085870951/?ref_=otl_zf
https://www.imdb.com/list/ls085870970/
https://www.imdb.com/list/ls085870970/?ref_=otl_0
https://www.imdb.com/list/ls085870970/?ref_=otl_bf
https://www.imdb.com/list/ls085870914/
https://www.imdb.com/list/ls085870914/?ref_=otl_v
https://www.imdb.com/list/ls085870914/?ref_=otl_nr
https://www.imdb.com/list/ls085870960/
https://www.imdb.com/list/ls085870960/?ref_=otl_T
https://www.imdb.com/list/ls085870960/?ref_=otl_me
https://www.imdb.com/list/ls085870922/
https://www.imdb.com/list/ls085870922/?ref_=otl_l
https://www.imdb.com/list/ls085870922/?ref_=otl_jd
https://www.imdb.com/list/ls085870942/
https://www.imdb.com/list/ls085870942/?ref_=otl_j
https://www.imdb.com/list/ls085870942/?ref_=otl_gu
https://www.imdb.com/list/ls085870982/
https://www.imdb.com/list/ls085870982/?ref_=otl_u
https://www.imdb.com/list/ls085870982/?ref_=otl_wg
https://www.imdb.com/list/ls085870802/
https://www.imdb.com/list/ls085870802/?ref_=otl_6
https://www.imdb.com/list/ls085870802/?ref_=otl_ig
https://www.imdb.com/list/ls085870879/
https://www.imdb.com/list/ls085870879/?ref_=otl_S
https://www.imdb.com/list/ls085870879/?ref_=otl_yg
https://www.imdb.com/list/ls085870811/
https://www.imdb.com/list/ls085870811/?ref_=otl_9
https://www.imdb.com/list/ls085870811/?ref_=otl_hx
https://www.imdb.com/list/ls085870863/
https://www.imdb.com/list/ls085870863/?ref_=otl_Q
https://www.imdb.com/list/ls085870863/?ref_=otl_oq
https://www.imdb.com/list/ls085870825/
https://www.imdb.com/list/ls085870825/?ref_=otl_Y
https://www.imdb.com/list/ls085870825/?ref_=otl_ec
https://www.imdb.com/list/ls085870893/
https://www.imdb.com/list/ls085870893/?ref_=otl_o
https://www.imdb.com/list/ls085870893/?ref_=otl_ky
https://www.imdb.com/list/ls085870881/
https://www.imdb.com/list/ls085870881/?ref_=otl_N
https://www.imdb.com/list/ls085870881/?ref_=otl_kp
https://www.imdb.com/list/ls085875053/
https://www.imdb.com/list/ls085875053/?ref_=otl_8
https://www.imdb.com/list/ls085875053/?ref_=otl_cw
https://www.imdb.com/list/ls085875054/
https://www.imdb.com/list/ls085875054/?ref_=otl_M
https://www.imdb.com/list/ls085875054/?ref_=otl_ay
https://www.imdb.com/list/ls085875019/
https://www.imdb.com/list/ls085875019/?ref_=otl_2
https://www.imdb.com/list/ls085875019/?ref_=otl_jw
https://www.imdb.com/list/ls085875060/
https://www.imdb.com/list/ls085875060/?ref_=otl_9
https://www.imdb.com/list/ls085875060/?ref_=otl_ts
https://www.imdb.com/list/ls085875086/
https://www.imdb.com/list/ls085875086/?ref_=otl_7
https://www.imdb.com/list/ls085875086/?ref_=otl_pn
https://www.imdb.com/list/ls085875505/
https://www.imdb.com/list/ls085875505/?ref_=otl_D
https://www.imdb.com/list/ls085875505/?ref_=otl_bc
https://www.imdb.com/list/ls085875552/
https://www.imdb.com/list/ls085875552/?ref_=otl_t
https://www.imdb.com/list/ls085875552/?ref_=otl_pz
https://www.imdb.com/list/ls085875571/
https://www.imdb.com/list/ls085875571/?ref_=otl_Z
https://www.imdb.com/list/ls085875571/?ref_=otl_hl
https://www.imdb.com/list/ls085875538/
https://www.imdb.com/list/ls085875538/?ref_=otl_n
https://www.imdb.com/list/ls085875538/?ref_=otl_qq
https://www.imdb.com/list/ls085875520/
https://www.imdb.com/list/ls085875520/?ref_=otl_3
https://www.imdb.com/list/ls085875520/?ref_=otl_hp
https://www.imdb.com/list/ls085875544/
https://www.imdb.com/list/ls085875544/?ref_=otl_8
https://www.imdb.com/list/ls085875544/?ref_=otl_eq
https://www.imdb.com/list/ls085875593/
https://www.imdb.com/list/ls085875593/?ref_=otl_m
https://www.imdb.com/list/ls085875593/?ref_=otl_mg
https://www.imdb.com/list/ls085875705/
https://www.imdb.com/list/ls085875705/?ref_=otl_h
https://www.imdb.com/list/ls085875705/?ref_=otl_dv
https://www.imdb.com/list/ls085875706/
https://www.imdb.com/list/ls085875706/?ref_=otl_k
https://www.imdb.com/list/ls085875706/?ref_=otl_sv
https://www.imdb.com/list/ls085875772/
https://www.imdb.com/list/ls085875772/?ref_=otl_1
https://www.imdb.com/list/ls085875772/?ref_=otl_uc
https://www.imdb.com/list/ls085875719/
https://www.imdb.com/list/ls085875719/?ref_=otl_y
https://www.imdb.com/list/ls085875719/?ref_=otl_su
https://www.imdb.com/list/ls085875764/
https://www.imdb.com/list/ls085875764/?ref_=otl_a
https://www.imdb.com/list/ls085875764/?ref_=otl_dg
https://www.imdb.com/list/ls085875723/
https://www.imdb.com/list/ls085875723/?ref_=otl_5
https://www.imdb.com/list/ls085875723/?ref_=otl_jf
https://www.imdb.com/list/ls085875796/
https://www.imdb.com/list/ls085875796/?ref_=otl_J
https://www.imdb.com/list/ls085875796/?ref_=otl_ah
https://www.imdb.com/list/ls085875103/
https://www.imdb.com/list/ls085875103/?ref_=otl_6
https://www.imdb.com/list/ls085875103/?ref_=otl_ku
https://www.imdb.com/list/ls085875119/
https://www.imdb.com/list/ls085875119/?ref_=otl_U
https://www.imdb.com/list/ls085875119/?ref_=otl_wk
https://www.imdb.com/list/ls085875132/
https://www.imdb.com/list/ls085875132/?ref_=otl_Y
https://www.imdb.com/list/ls085875132/?ref_=otl_ig
https://www.imdb.com/list/ls085875123/
https://www.imdb.com/list/ls085875123/?ref_=otl_a
https://www.imdb.com/list/ls085875123/?ref_=otl_cc
https://www.imdb.com/list/ls085875141/
https://www.imdb.com/list/ls085875141/?ref_=otl_4
https://www.imdb.com/list/ls085875141/?ref_=otl_ao
https://www.imdb.com/list/ls085875187/
https://www.imdb.com/list/ls085875187/?ref_=otl_5
https://www.imdb.com/list/ls085875187/?ref_=otl_jf
https://www.imdb.com/list/ls085875188/
https://www.imdb.com/list/ls085875188/?ref_=otl_d
https://www.imdb.com/list/ls085875188/?ref_=otl_jr
https://www.imdb.com/list/ls085875354/
https://www.imdb.com/list/ls085875354/?ref_=otl_J
https://www.imdb.com/list/ls085875354/?ref_=otl_di
https://www.imdb.com/list/ls085875310/
https://www.imdb.com/list/ls085875310/?ref_=otl_A
https://www.imdb.com/list/ls085875310/?ref_=otl_ss
https://www.imdb.com/list/ls085875324/
https://www.imdb.com/list/ls085875324/?ref_=otl_b
https://www.imdb.com/list/ls085875324/?ref_=otl_jb
https://www.imdb.com/list/ls085875387/
https://www.imdb.com/list/ls085875387/?ref_=otl_7
https://www.imdb.com/list/ls085875387/?ref_=otl_zn
https://www.imdb.com/list/ls085875650/
https://www.imdb.com/list/ls085875650/?ref_=otl_R
https://www.imdb.com/list/ls085875650/?ref_=otl_dv
https://www.imdb.com/list/ls085875670/
https://www.imdb.com/list/ls085875670/?ref_=otl_I
https://www.imdb.com/list/ls085875670/?ref_=otl_xl
https://www.imdb.com/list/ls085875665/
https://www.imdb.com/list/ls085875665/?ref_=otl_5
https://www.imdb.com/list/ls085875665/?ref_=otl_rn
https://www.imdb.com/list/ls085875625/
https://www.imdb.com/list/ls085875625/?ref_=otl_r
https://www.imdb.com/list/ls085875625/?ref_=otl_uz
https://www.imdb.com/list/ls085875692/
https://www.imdb.com/list/ls085875692/?ref_=otl_4
https://www.imdb.com/list/ls085875692/?ref_=otl_bv
https://www.imdb.com/list/ls085875685/
https://www.imdb.com/list/ls085875685/?ref_=otl_0
https://www.imdb.com/list/ls085875685/?ref_=otl_om
https://www.imdb.com/list/ls085875204/
https://www.imdb.com/list/ls085875204/?ref_=otl_S
https://www.imdb.com/list/ls085875204/?ref_=otl_ec
https://www.imdb.com/list/ls085875210/
https://www.imdb.com/list/ls085875210/?ref_=otl_6
https://www.imdb.com/list/ls085875210/?ref_=otl_ci
https://www.imdb.com/list/ls085875295/
https://www.imdb.com/list/ls085875295/?ref_=otl_5
https://www.imdb.com/list/ls085875295/?ref_=otl_zj
https://www.imdb.com/list/ls085875287/
https://www.imdb.com/list/ls085875287/?ref_=otl_0
https://www.imdb.com/list/ls085875287/?ref_=otl_cu
https://www.imdb.com/list/ls085875451/
https://www.imdb.com/list/ls085875451/?ref_=otl_y
https://www.imdb.com/list/ls085875451/?ref_=otl_ms
https://www.imdb.com/list/ls085875470/
https://www.imdb.com/list/ls085875470/?ref_=otl_C
https://www.imdb.com/list/ls085875470/?ref_=otl_mg
https://www.imdb.com/list/ls085875460/
https://www.imdb.com/list/ls085875460/?ref_=otl_8
https://www.imdb.com/list/ls085875460/?ref_=otl_ig
https://www.imdb.com/list/ls085875468/
https://www.imdb.com/list/ls085875468/?ref_=otl_Z
https://www.imdb.com/list/ls085875468/?ref_=otl_lw
https://www.imdb.com/list/ls085875490/
https://www.imdb.com/list/ls085875490/?ref_=otl_6
https://www.imdb.com/list/ls085875490/?ref_=otl_qi
https://www.imdb.com/list/ls085875480/
https://www.imdb.com/list/ls085875480/?ref_=otl_8
https://www.imdb.com/list/ls085875480/?ref_=otl_eq
https://www.imdb.com/list/ls085875903/
https://www.imdb.com/list/ls085875903/?ref_=otl_R
https://www.imdb.com/list/ls085875903/?ref_=otl_gd
https://www.imdb.com/list/ls085875951/
https://www.imdb.com/list/ls085875951/?ref_=otl_4
https://www.imdb.com/list/ls085875951/?ref_=otl_gg
https://www.imdb.com/list/ls085875913/
https://www.imdb.com/list/ls085875913/?ref_=otl_v
https://www.imdb.com/list/ls085875913/?ref_=otl_lr
https://www.imdb.com/list/ls085875936/
https://www.imdb.com/list/ls085875936/?ref_=otl_d
https://www.imdb.com/list/ls085875936/?ref_=otl_db
https://www.imdb.com/list/ls085875921/
https://www.imdb.com/list/ls085875921/?ref_=otl_P
https://www.imdb.com/list/ls085875921/?ref_=otl_fh
https://www.imdb.com/list/ls085875946/
https://www.imdb.com/list/ls085875946/?ref_=otl_r
https://www.imdb.com/list/ls085875946/?ref_=otl_zb
https://www.imdb.com/list/ls085875981/
https://www.imdb.com/list/ls085875981/?ref_=otl_Q
https://www.imdb.com/list/ls085875981/?ref_=otl_xm
https://www.imdb.com/list/ls085875800/
https://www.imdb.com/list/ls085875800/?ref_=otl_8
https://www.imdb.com/list/ls085875800/?ref_=otl_se
https://www.imdb.com/list/ls085875879/
https://www.imdb.com/list/ls085875879/?ref_=otl_u
https://www.imdb.com/list/ls085875879/?ref_=otl_ms
https://www.imdb.com/list/ls085875814/
https://www.imdb.com/list/ls085875814/?ref_=otl_j
https://www.imdb.com/list/ls085875814/?ref_=otl_tl
https://www.imdb.com/list/ls085875820/
https://www.imdb.com/list/ls085875820/?ref_=otl_n
https://www.imdb.com/list/ls085875820/?ref_=otl_jp
https://www.imdb.com/list/ls085875841/
https://www.imdb.com/list/ls085875841/?ref_=otl_c
https://www.imdb.com/list/ls085875841/?ref_=otl_ac
https://www.imdb.com/list/ls085875892/
https://www.imdb.com/list/ls085875892/?ref_=otl_d
https://www.imdb.com/list/ls085875892/?ref_=otl_fn
https://www.imdb.com/list/ls085877051/
https://www.imdb.com/list/ls085877051/?ref_=otl_9
https://www.imdb.com/list/ls085877051/?ref_=otl_dr
https://www.imdb.com/list/ls085877020/
https://www.imdb.com/list/ls085877020/?ref_=otl_e
https://www.imdb.com/list/ls085877020/?ref_=otl_au
https://www.imdb.com/list/ls085877040/
https://www.imdb.com/list/ls085877040/?ref_=otl_t
https://www.imdb.com/list/ls085877040/?ref_=otl_lt
https://www.imdb.com/list/ls085877080/
https://www.imdb.com/list/ls085877080/?ref_=otl_B
https://www.imdb.com/list/ls085877080/?ref_=otl_dt
https://www.imdb.com/list/ls085877557/
https://www.imdb.com/list/ls085877557/?ref_=otl_b
https://www.imdb.com/list/ls085877557/?ref_=otl_bd
https://www.imdb.com/list/ls085877563/
https://www.imdb.com/list/ls085877563/?ref_=otl_u
https://www.imdb.com/list/ls085877563/?ref_=otl_iy
https://www.imdb.com/list/ls085877523/
https://www.imdb.com/list/ls085877523/?ref_=otl_7
https://www.imdb.com/list/ls085877523/?ref_=otl_td

猜你喜欢

转载自www.cnblogs.com/NicholasLee/p/13376026.html