设为首页 收藏本站
查看: 631|回复: 0

[经验分享] Python自带函数map(),zip()等

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-2-29 09:18:48 | 显示全部楼层 |阅读模式
1.map()函数
map()函数的目的是对每个成员迭代执行一个函数操作,最后返回的是一个列表

map(function, sequence[, sequence, ...]) -> list
1
2
3
4
5
6
In [82]: def add100(x):
   ....:     return x+100
   ....:

In [83]: map(add100,(44,22,66))
Out[83]: [144, 122, 166]




定义一个函数add100(x),map(add100,(44,22,66))就是迭代的对每个数字进行add100(x)的操作,最后返回一个列表数据

1
2
3
4
5
In [84]: def abc(a,b,c):
   ....:     return a*100 + b*10 + c
   ....:
In [85]: map(abc,(1,2,3),(4,5,6),(7,8,9))
Out[85]: [147, 258, 369]




如果需要迭代执行的函数需要多个参数,那么就为map()提供多个元组
1
2
3
4
5
6
7
8
9
10
In [91]: map(None,range(3))
Out[91]: [0, 1, 2]
In [92]: map(None,range(3))
Out[92]: [0, 1, 2]
In [93]: map(None,range(3),'abc',(44,55,66))
Out[93]: [(0, 'a', 44), (1, 'b', 55), (2, 'c', 66)]
In [94]: map(None,range(3),'abc')
Out[94]: [(0, 'a'), (1, 'b'), (2, 'c')]
In [95]: map(None,range(3),range(3))
Out[95]: [(0, 0), (1, 1), (2, 2)]





如果想将一行字符串转换成字典就可以这样
1
2
3
4
5
6
7
8
9
10
11
In [97]: d='zk_version\t3.4.6'
In [99]: map(str.strip,d.split('\t'))
Out[99]: ['zk_version', '3.4.6']
In [100]: key,value=map(str.strip,d.split('\t'))
In [101]: key
Out[101]: 'zk_version'
In [102]: value
Out[102]: '3.4.6'
In [103]: result[key]=value
In [104]: result
Out[104]: {'zk_version': '3.4.6'}









2.zip()函数
zip()的目的是返回一个元组列表
zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
1
2
3
4
5
6
7
In [107]: L1=[1,2,3,4]
In [108]: L2=['a','b','c','d']
In [109]: zip(L1,L2)
Out[109]: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
In [110]: L3=[10.0,20.0,30.0,40.0]
In [111]: zip(L1,L2,L3)
Out[111]: [(1, 'a', 10.0), (2, 'b', 20.0), (3, 'c', 30.0), (4, 'd', 40.0)]





3.dict()函数
dict()最后返回的是一个字典类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
In [141]: L1
Out[141]: [1, 2, 3, 4]

In [142]: L2
Out[142]: ['a', 'b', 'c', 'd']

In [143]: zip(L2,L1)
Out[143]: [('a', 1), ('b', 2), ('c', 3), ('d', 4)]

In [144]: dict(zip(L2,L1))
Out[144]: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

In [145]: dict(a=10,b=20,c=30)
Out[145]: {'a': 10, 'b': 20, 'c': 30}

In [146]: dict([('a',100),('b',200),('c',300)])
Out[146]: {'a': 100, 'b': 200, 'c': 300}








运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-184201-1-1.html 上篇帖子: python 版本traceroute和路由图片输出 下篇帖子: Python的StringIO模块和cStringIO模块
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表