34222 发表于 2016-2-29 09:18:48

Python自带函数map(),zip()等

1.map()函数
map()函数的目的是对每个成员迭代执行一个函数操作,最后返回的是一个列表

map(function, sequence[, sequence, ...]) -> list

1
2
3
4
5
6
In : def add100(x):
   ....:   return x+100
   ....:

In : map(add100,(44,22,66))
Out:





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


1
2
3
4
5
In : def abc(a,b,c):
   ....:   return a*100 + b*10 + c
   ....:
In : map(abc,(1,2,3),(4,5,6),(7,8,9))
Out:





如果需要迭代执行的函数需要多个参数,那么就为map()提供多个元组

1
2
3
4
5
6
7
8
9
10
In : map(None,range(3))
Out:
In : map(None,range(3))
Out:
In : map(None,range(3),'abc',(44,55,66))
Out: [(0, 'a', 44), (1, 'b', 55), (2, 'c', 66)]
In : map(None,range(3),'abc')
Out: [(0, 'a'), (1, 'b'), (2, 'c')]
In : map(None,range(3),range(3))
Out: [(0, 0), (1, 1), (2, 2)]






如果想将一行字符串转换成字典就可以这样

1
2
3
4
5
6
7
8
9
10
11
In : d='zk_version\t3.4.6'
In : map(str.strip,d.split('\t'))
Out: ['zk_version', '3.4.6']
In : key,value=map(str.strip,d.split('\t'))
In : key
Out: 'zk_version'
In : value
Out: '3.4.6'
In : result=value
In : result
Out: {'zk_version': '3.4.6'}










2.zip()函数
zip()的目的是返回一个元组列表
zip(seq1 [, seq2 [...]]) -> [(seq1, seq2 ...), (...)]

1
2
3
4
5
6
7
In : L1=
In : L2=['a','b','c','d']
In : zip(L1,L2)
Out: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
In : L3=
In : zip(L1,L2,L3)
Out: [(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 : L1
Out:

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

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

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

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

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








页: [1]
查看完整版本: Python自带函数map(),zip()等