Python - 多个迭代的排气图

时间:2014-03-14 13:45:57

标签: python python-3.x map iterable

a=['1','2','3']

map(int,a)可以使用list来耗尽输出:

list(map(int,a))

输出:1,2,3


a=['1','2','3']
b=['1','2']

如何耗尽以下条件:

map(int,a,b)

1 个答案:

答案 0 :(得分:5)

如果要将每个列表转换为整数列表,可以执行

a, b = ['1','2','3'], ['1','2']
print(list(map(lambda x: map(int,x), [a, b])))
# [[1, 2, 3], [1, 2]]

可以分配给ab,就像这样

a, b = map(lambda x: map(int,x), [a, b])

如果要链接元素,可以使用itertools.chain,就像这样

from itertools import chain
print(list(map(int, chain(a,b))))
# [1, 2, 3, 1, 2]

编辑:如果你想传递多于iterable作为参数,那么该函数也必须接受许多参数。例如,

a, b = [1, 2, 3], [1, 2, 3]
print(list(map(lambda x, y: x + y, a, b)))
# [2, 4, 6]

如果我们传递三个迭代,则该函数必须接受三个参数,

a, b, c = [1, 2, 3], [1, 2, 3], [1, 2, 3]
print(list(map(lambda x, y, z: x + y + z, a, b, c)))
# [3, 6, 9]

如果可迭代的大小不同,则将考虑最小大小的可迭代的长度。所以

a, b, c = [1, 2, 3], [1, 2, 3], [1, 2]
print(list(map(lambda x, y, z: x + y + z, a, b, c)))
# [3, 6]