python之map函数介绍使用

   Python 内置了很多非常有用的函数 比如map() ,reduce(),filter(),还有lambda。熟练应用这些函数可以在写python程序的时候构建精简的代码。本文先来了解map函数。

用法:

  1. map(func, seq1[, seq2,…])

map接收两个参数,第一个参数是函数名,第二个是一个或多个可迭代的序列,返回的是一个集合。运行时,map()将func作用于序列中的每一个元素,并将结果作为一个list返回。如果func为None,作用同zip()。
2.1 当seq 只有一个时,map函数返回将func函数作用于 seq每个元素并返回一个新的list集合,

比如需要将seq的元素乘以2 ,使用map可以写成

  1. In [4]: l=[1, 2, 3, 4, 5, 6, 7, 8, 9]
  2. In [5]: map(lambda x:x*2 ,l)
  3. Out[5]: [2, 4, 6, 8, 10, 12, 14, 16, 18]

如果使用函数来做:

  1. rest=[]
  2. for i in l:
  3.   rest.append(i*2)
  4. print rest

map作为高阶函数,能够把运算规则抽象化,显然map 更精简。

2.2 当有多个seq时,map可以并行的取每个seq对应的第M个元素 seqN[M],进行计算。

例子:

  1. In [9]: map(lambda x , y : x * y, [2,4,6],[3,2,1])
  2. Out[9]: [6, 8, 6]

记得多个seq的元素个数必须一致 不然会报错 

  1. In [1]: print map(lambda x , y : x ** y, [2,4,6],[3,2,1])
  2. [8, 16, 6]
  3. seq1=[2,4,6] ,seq2=[3,2] 元素个数不一致则报错。
  4. In [3]: print map(lambda x , y : x ** y, [2,4,6],[3,2])
  5. ---------------------------------------------------------------------------
  6. TypeError Traceback (most recent call last)
  7. <ipython-input-3-d075c46afd0b> in <module>()
  8. ----> 1 print map(lambda x , y : x ** y, [2,4,6],[3,2])
  9. <ipython-input-3-d075c46afd0b> in <lambda>(x, y)
  10. ----> 1 print map(lambda x , y : x ** y, [2,4,6],[3,2])
  11. TypeError: unsupported operand type(s) for ** or pow(): 'int' and 'NoneType'
  12. In [4]:

2.3 map在多进程中的应用。

  1. #!/usr/bin/env python
  2. # encoding: utf-8
  3. """
  4. author: [email protected]
  5. time: 2017/7/16 上午10:42
  6. func: 参考网络上的例子 
  7. """
  8. import urllib2
  9. from multiprocessing.dummy import Pool as ThreadPool
  10. urls = [
  11.         'http://www.python.org',
  12.         'http://www.python.org/about/',
  13.         'http://www.onlamp.com/pub/a/python/2003/04/17/metaclasses.html',
  14.         'http://www.python.org/doc/',
  15.         'http://www.python.org/download/',
  16.         'http://www.python.org/getit/',
  17.         'http://www.python.org/community/',
  18.         'https://wiki.python.org/moin/',
  19.         'http://planet.python.org/',
  20.         'https://wiki.python.org/moin/LocalUserGroups',
  21.         'http://www.python.org/psf/',
  22.         'http://docs.python.org/devguide/',
  23.         'http://www.python.org/community/awards/'
  24.         ]
  25. # Make the Pool of workers
  26. pool = ThreadPool(4)
  27. # Open the urls in their own threads
  28. # and return the results
  29. results = pool.map(urllib2.urlopen, urls)
  30. #close the pool and wait for the work to finish
  31. pool.close()
  32. pool.join()

该例子使用了multiprocessing.dummy的线程池Pool的方式,利用用map的特性来处理url集合。
参考文档
[1] [Python] Python中的一些特殊函数

https://www.imdb.com/list/ls085877590/
https://www.imdb.com/list/ls085877590/?ref_=otl_c
https://www.imdb.com/list/ls085877590/?ref_=otl_kk
https://www.imdb.com/list/ls085877701/
https://www.imdb.com/list/ls085877701/?ref_=otl_Q
https://www.imdb.com/list/ls085877701/?ref_=otl_ye
https://www.imdb.com/list/ls085877738/
https://www.imdb.com/list/ls085877738/?ref_=otl_v
https://www.imdb.com/list/ls085877738/?ref_=otl_xr
https://www.imdb.com/list/ls085877725/
https://www.imdb.com/list/ls085877725/?ref_=otl_R
https://www.imdb.com/list/ls085877725/?ref_=otl_hv
https://www.imdb.com/list/ls085877742/
https://www.imdb.com/list/ls085877742/?ref_=otl_5
https://www.imdb.com/list/ls085877742/?ref_=otl_nf
https://www.imdb.com/list/ls085877795/
https://www.imdb.com/list/ls085877795/?ref_=otl_5
https://www.imdb.com/list/ls085877795/?ref_=otl_lb
https://www.imdb.com/list/ls085877155/
https://www.imdb.com/list/ls085877155/?ref_=otl_p
https://www.imdb.com/list/ls085877155/?ref_=otl_vr
https://www.imdb.com/list/ls085877179/
https://www.imdb.com/list/ls085877179/?ref_=otl_p
https://www.imdb.com/list/ls085877179/?ref_=otl_fh
https://www.imdb.com/list/ls085877134/
https://www.imdb.com/list/ls085877134/?ref_=otl_j
https://www.imdb.com/list/ls085877134/?ref_=otl_db
https://www.imdb.com/list/ls085877163/
https://www.imdb.com/list/ls085877163/?ref_=otl_P
https://www.imdb.com/list/ls085877163/?ref_=otl_xj
https://www.imdb.com/list/ls085877145/
https://www.imdb.com/list/ls085877145/?ref_=otl_U
https://www.imdb.com/list/ls085877145/?ref_=otl_tl
https://www.imdb.com/list/ls085877185/
https://www.imdb.com/list/ls085877185/?ref_=otl_3
https://www.imdb.com/list/ls085877185/?ref_=otl_pt
https://www.imdb.com/list/ls085877379/
https://www.imdb.com/list/ls085877379/?ref_=otl_1
https://www.imdb.com/list/ls085877379/?ref_=otl_gh
https://www.imdb.com/list/ls085877314/
https://www.imdb.com/list/ls085877314/?ref_=otl_6
https://www.imdb.com/list/ls085877314/?ref_=otl_ea
https://www.imdb.com/list/ls085877327/
https://www.imdb.com/list/ls085877327/?ref_=otl_X
https://www.imdb.com/list/ls085877327/?ref_=otl_bh
https://www.imdb.com/list/ls085877343/
https://www.imdb.com/list/ls085877343/?ref_=otl_z
https://www.imdb.com/list/ls085877343/?ref_=otl_si
https://www.imdb.com/list/ls085877383/
https://www.imdb.com/list/ls085877383/?ref_=otl_k
https://www.imdb.com/list/ls085877383/?ref_=otl_ae
https://www.imdb.com/list/ls085877606/
https://www.imdb.com/list/ls085877606/?ref_=otl_S
https://www.imdb.com/list/ls085877606/?ref_=otl_uk
https://www.imdb.com/list/ls085877615/
https://www.imdb.com/list/ls085877615/?ref_=otl_g
https://www.imdb.com/list/ls085877615/?ref_=otl_sg
https://www.imdb.com/list/ls085877618/
https://www.imdb.com/list/ls085877618/?ref_=otl_X
https://www.imdb.com/list/ls085877618/?ref_=otl_vx
https://www.imdb.com/list/ls085877621/
https://www.imdb.com/list/ls085877621/?ref_=otl_a
https://www.imdb.com/list/ls085877621/?ref_=otl_jp
https://www.imdb.com/list/ls085877695/
https://www.imdb.com/list/ls085877695/?ref_=otl_B
https://www.imdb.com/list/ls085877695/?ref_=otl_yp
https://www.imdb.com/list/ls085877689/
https://www.imdb.com/list/ls085877689/?ref_=otl_2
https://www.imdb.com/list/ls085877689/?ref_=otl_ww
https://www.imdb.com/list/ls085877255/
https://www.imdb.com/list/ls085877255/?ref_=otl_S
https://www.imdb.com/list/ls085877255/?ref_=otl_as
https://www.imdb.com/list/ls085877215/
https://www.imdb.com/list/ls085877215/?ref_=otl_A
https://www.imdb.com/list/ls085877215/?ref_=otl_oo
https://www.imdb.com/list/ls085877233/
https://www.imdb.com/list/ls085877233/?ref_=otl_O
https://www.imdb.com/list/ls085877233/?ref_=otl_ng
https://www.imdb.com/list/ls085877223/
https://www.imdb.com/list/ls085877223/?ref_=otl_P
https://www.imdb.com/list/ls085877223/?ref_=otl_nj
https://www.imdb.com/list/ls085877282/
https://www.imdb.com/list/ls085877282/?ref_=otl_k
https://www.imdb.com/list/ls085877282/?ref_=otl_as
https://www.imdb.com/list/ls085877413/
https://www.imdb.com/list/ls085877413/?ref_=otl_f
https://www.imdb.com/list/ls085877413/?ref_=otl_bt
https://www.imdb.com/list/ls085877437/
https://www.imdb.com/list/ls085877437/?ref_=otl_8
https://www.imdb.com/list/ls085877437/?ref_=otl_sa
https://www.imdb.com/list/ls085877464/
https://www.imdb.com/list/ls085877464/?ref_=otl_f
https://www.imdb.com/list/ls085877464/?ref_=otl_nd
https://www.imdb.com/list/ls085877429/
https://www.imdb.com/list/ls085877429/?ref_=otl_3
https://www.imdb.com/list/ls085877429/?ref_=otl_lv
https://www.imdb.com/list/ls085877496/
https://www.imdb.com/list/ls085877496/?ref_=otl_b
https://www.imdb.com/list/ls085877496/?ref_=otl_ll
https://www.imdb.com/list/ls085877907/
https://www.imdb.com/list/ls085877907/?ref_=otl_3
https://www.imdb.com/list/ls085877907/?ref_=otl_lr
https://www.imdb.com/list/ls085877934/
https://www.imdb.com/list/ls085877934/?ref_=otl_9
https://www.imdb.com/list/ls085877934/?ref_=otl_pf
https://www.imdb.com/list/ls085877920/
https://www.imdb.com/list/ls085877920/?ref_=otl_w
https://www.imdb.com/list/ls085877920/?ref_=otl_xy
https://www.imdb.com/list/ls085877949/
https://www.imdb.com/list/ls085877949/?ref_=otl_P
https://www.imdb.com/list/ls085877949/?ref_=otl_ft
https://www.imdb.com/list/ls085877998/
https://www.imdb.com/list/ls085877998/?ref_=otl_7
https://www.imdb.com/list/ls085877998/?ref_=otl_vn
https://www.imdb.com/list/ls085877801/
https://www.imdb.com/list/ls085877801/?ref_=otl_6
https://www.imdb.com/list/ls085877801/?ref_=otl_ma
https://www.imdb.com/list/ls085877855/
https://www.imdb.com/list/ls085877855/?ref_=otl_2
https://www.imdb.com/list/ls085877855/?ref_=otl_qk
https://www.imdb.com/list/ls085877816/
https://www.imdb.com/list/ls085877816/?ref_=otl_j
https://www.imdb.com/list/ls085877816/?ref_=otl_ih
https://www.imdb.com/list/ls085877833/
https://www.imdb.com/list/ls085877833/?ref_=otl_2
https://www.imdb.com/list/ls085877833/?ref_=otl_aq
https://www.imdb.com/list/ls085877847/
https://www.imdb.com/list/ls085877847/?ref_=otl_7
https://www.imdb.com/list/ls085877847/?ref_=otl_fj
https://www.imdb.com/list/ls085877883/
https://www.imdb.com/list/ls085877883/?ref_=otl_9
https://www.imdb.com/list/ls085877883/?ref_=otl_vj
https://www.imdb.com/list/ls085871039/
https://www.imdb.com/list/ls085871039/?ref_=otl_q
https://www.imdb.com/list/ls085871039/?ref_=otl_ay
https://www.imdb.com/list/ls085871023/
https://www.imdb.com/list/ls085871023/?ref_=otl_5
https://www.imdb.com/list/ls085871023/?ref_=otl_qj
https://www.imdb.com/list/ls085871098/
https://www.imdb.com/list/ls085871098/?ref_=otl_D
https://www.imdb.com/list/ls085871098/?ref_=otl_zp
https://www.imdb.com/list/ls085871089/
https://www.imdb.com/list/ls085871089/?ref_=otl_H
https://www.imdb.com/list/ls085871089/?ref_=otl_qf
https://www.imdb.com/list/ls085871551/
https://www.imdb.com/list/ls085871551/?ref_=otl_h
https://www.imdb.com/list/ls085871551/?ref_=otl_dp
https://www.imdb.com/list/ls085871512/
https://www.imdb.com/list/ls085871512/?ref_=otl_z
https://www.imdb.com/list/ls085871512/?ref_=otl_pn
https://www.imdb.com/list/ls085871542/
https://www.imdb.com/list/ls085871542/?ref_=otl_j
https://www.imdb.com/list/ls085871542/?ref_=otl_bo
https://www.imdb.com/list/ls085871587/
https://www.imdb.com/list/ls085871587/?ref_=otl_E
https://www.imdb.com/list/ls085871587/?ref_=otl_lb
https://www.imdb.com/list/ls085871754/
https://www.imdb.com/list/ls085871754/?ref_=otl_3
https://www.imdb.com/list/ls085871754/?ref_=otl_ln
https://www.imdb.com/list/ls085871778/
https://www.imdb.com/list/ls085871778/?ref_=otl_C
https://www.imdb.com/list/ls085871778/?ref_=otl_cy
https://www.imdb.com/list/ls085871733/
https://www.imdb.com/list/ls085871733/?ref_=otl_6
https://www.imdb.com/list/ls085871733/?ref_=otl_ua
https://www.imdb.com/list/ls085871763/
https://www.imdb.com/list/ls085871763/?ref_=otl_N
https://www.imdb.com/list/ls085871763/?ref_=otl_dv
https://www.imdb.com/list/ls085871793/
https://www.imdb.com/list/ls085871793/?ref_=otl_m
https://www.imdb.com/list/ls085871793/?ref_=otl_ia
https://www.imdb.com/list/ls085871789/
https://www.imdb.com/list/ls085871789/?ref_=otl_Z
https://www.imdb.com/list/ls085871789/?ref_=otl_lc
https://www.imdb.com/list/ls085871151/
https://www.imdb.com/list/ls085871151/?ref_=otl_7
https://www.imdb.com/list/ls085871151/?ref_=otl_jd
https://www.imdb.com/list/ls085871158/
https://www.imdb.com/list/ls085871158/?ref_=otl_8
https://www.imdb.com/list/ls085871158/?ref_=otl_ga
https://www.imdb.com/list/ls085871119/
https://www.imdb.com/list/ls085871119/?ref_=otl_H
https://www.imdb.com/list/ls085871119/?ref_=otl_de
https://www.imdb.com/list/ls085871132/
https://www.imdb.com/list/ls085871132/?ref_=otl_7
https://www.imdb.com/list/ls085871132/?ref_=otl_ye
https://www.imdb.com/list/ls085871128/
https://www.imdb.com/list/ls085871128/?ref_=otl_1
https://www.imdb.com/list/ls085871128/?ref_=otl_pg
https://www.imdb.com/list/ls085871146/
https://www.imdb.com/list/ls085871146/?ref_=otl_8
https://www.imdb.com/list/ls085871146/?ref_=otl_ow
https://www.imdb.com/list/ls085871183/
https://www.imdb.com/list/ls085871183/?ref_=otl_s
https://www.imdb.com/list/ls085871183/?ref_=otl_ak
https://www.imdb.com/list/ls085871302/
https://www.imdb.com/list/ls085871302/?ref_=otl_5
https://www.imdb.com/list/ls085871302/?ref_=otl_sv
https://www.imdb.com/list/ls085871312/
https://www.imdb.com/list/ls085871312/?ref_=otl_9
https://www.imdb.com/list/ls085871312/?ref_=otl_zr
https://www.imdb.com/list/ls085871332/
https://www.imdb.com/list/ls085871332/?ref_=otl_2
https://www.imdb.com/list/ls085871332/?ref_=otl_ms
https://www.imdb.com/list/ls085871342/
https://www.imdb.com/list/ls085871342/?ref_=otl_f
https://www.imdb.com/list/ls085871342/?ref_=otl_vz
https://www.imdb.com/list/ls085871396/
https://www.imdb.com/list/ls085871396/?ref_=otl_N
https://www.imdb.com/list/ls085871396/?ref_=otl_nd
https://www.imdb.com/list/ls085871671/
https://www.imdb.com/list/ls085871671/?ref_=otl_r
https://www.imdb.com/list/ls085871671/?ref_=otl_zo
https://www.imdb.com/list/ls085871634/
https://www.imdb.com/list/ls085871634/?ref_=otl_2
https://www.imdb.com/list/ls085871634/?ref_=otl_qc
https://www.imdb.com/list/ls085871620/
https://www.imdb.com/list/ls085871620/?ref_=otl_5
https://www.imdb.com/list/ls085871620/?ref_=otl_hx
https://www.imdb.com/list/ls085871682/
https://www.imdb.com/list/ls085871682/?ref_=otl_5
https://www.imdb.com/list/ls085871682/?ref_=otl_da
https://www.imdb.com/list/ls085871208/
https://www.imdb.com/list/ls085871208/?ref_=otl_X
https://www.imdb.com/list/ls085871208/?ref_=otl_rp
https://www.imdb.com/list/ls085871217/
https://www.imdb.com/list/ls085871217/?ref_=otl_0
https://www.imdb.com/list/ls085871217/?ref_=otl_ad
https://www.imdb.com/list/ls085871233/
https://www.imdb.com/list/ls085871233/?ref_=otl_g
https://www.imdb.com/list/ls085871233/?ref_=otl_yg
https://www.imdb.com/list/ls085871224/
https://www.imdb.com/list/ls085871224/?ref_=otl_4
https://www.imdb.com/list/ls085871224/?ref_=otl_qu
https://www.imdb.com/list/ls085871243/
https://www.imdb.com/list/ls085871243/?ref_=otl_O
https://www.imdb.com/list/ls085871243/?ref_=otl_yu
https://www.imdb.com/list/ls085871401/
https://www.imdb.com/list/ls085871401/?ref_=otl_R
https://www.imdb.com/list/ls085871401/?ref_=otl_xt
https://www.imdb.com/list/ls085871458/
https://www.imdb.com/list/ls085871458/?ref_=otl_H
https://www.imdb.com/list/ls085871458/?ref_=otl_qe
https://www.imdb.com/list/ls085871467/
https://www.imdb.com/list/ls085871467/?ref_=otl_F
https://www.imdb.com/list/ls085871467/?ref_=otl_ff
https://www.imdb.com/list/ls085871424/
https://www.imdb.com/list/ls085871424/?ref_=otl_9
https://www.imdb.com/list/ls085871424/?ref_=otl_gl
https://www.imdb.com/list/ls085871481/
https://www.imdb.com/list/ls085871481/?ref_=otl_1
https://www.imdb.com/list/ls085871481/?ref_=otl_jf
https://www.imdb.com/list/ls085871488/
https://www.imdb.com/list/ls085871488/?ref_=otl_0
https://www.imdb.com/list/ls085871488/?ref_=otl_qw
https://www.imdb.com/list/ls085871995/
https://www.imdb.com/list/ls085871995/?ref_=otl_h
https://www.imdb.com/list/ls085871995/?ref_=otl_td
https://www.imdb.com/list/ls085871982/
https://www.imdb.com/list/ls085871982/?ref_=otl_0
https://www.imdb.com/list/ls085871982/?ref_=otl_kc
https://www.imdb.com/list/ls085871878/
https://www.imdb.com/list/ls085871878/?ref_=otl_v
https://www.imdb.com/list/ls085871878/?ref_=otl_bd
https://www.imdb.com/list/ls085871864/
https://www.imdb.com/list/ls085871864/?ref_=otl_4
https://www.imdb.com/list/ls085871864/?ref_=otl_gc
https://www.imdb.com/list/ls085873012/
https://www.imdb.com/list/ls085873012/?ref_=otl_f
https://www.imdb.com/list/ls085873012/?ref_=otl_bf
https://www.imdb.com/list/ls085873034/
https://www.imdb.com/list/ls085873034/?ref_=otl_R
https://www.imdb.com/list/ls085873034/?ref_=otl_dn
https://www.imdb.com/list/ls085429632/?ref_=otl_8
https://www.imdb.com/list/ls085429661/?ref_=otl_l
https://www.imdb.com/list/ls085429870/?ref_=otl_ww
https://www.imdb.com/list/ls085429877/?ref_=otl_4
https://www.imdb.com/list/ls085429865/?ref_=otl_7
https://www.imdb.com/list/ls085429827/?ref_=otl_0
https://www.imdb.com/list/ls085429845/?ref_=otl_oo
https://www.imdb.com/list/ls085429891/?ref_=otl_re
https://www.imdb.com/list/ls085429880/?ref_=otl_me
https://www.imdb.com/list/ls085428001/?ref_=otl_ty
https://www.imdb.com/list/ls085428009/?ref_=otl_qu
https://www.imdb.com/list/ls085428570/?ref_=otl_wo
https://www.imdb.com/list/ls085428576/?ref_=otl_to
https://www.imdb.com/list/ls085428535/?ref_=otl_zk
https://www.imdb.com/list/ls085428538/?ref_=otl_cu
https://www.imdb.com/list/ls085428527/?ref_=otl_ZO
https://www.imdb.com/list/ls085428529/?ref_=otl_bk
https://www.imdb.com/list/ls085428596/?ref_=otl_ky
https://www.imdb.com/list/ls085428583/?ref_=otl_k1
https://www.imdb.com/list/ls085443068/?ref_=otl_k
https://www.imdb.com/list/ls085443023/?ref_=otl_y
https://www.imdb.com/list/ls085443085/?ref_=otl_y
https://www.imdb.com/list/ls085443089/?ref_=otl_q
https://www.imdb.com/list/ls085443592/?ref_=otl_f
https://www.imdb.com/list/ls085443705/?ref_=otl_y
https://www.imdb.com/list/ls085443752/?ref_=otl_d
https://www.imdb.com/list/ls085443710/?ref_=otl_w
https://www.imdb.com/list/ls085443738/?ref_=otl_t
https://www.imdb.com/list/ls085443725/?ref_=otl_y

猜你喜欢

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