带有min参数和两个列表的python map函数

时间:2016-08-02 05:36:30

标签: python

我无法弄清楚为什么这个地图功能正在产生它产生的输出。代码如下:

    L1 = [1, 28, 36]
    L2 = [2, 57, 9]
    print map(min, L1, L2)

输出是:         [1,28,9]

我理解它从第一个列表中取出了最小值,但为什么不从第二个列表中取出2,而是取了9.感谢任何反馈,谢谢。

4 个答案:

答案 0 :(得分:6)

结果由

组成
[min(L1[0], L2[0]), min(L1[1], L2[1]), min(L1[2], L2[2])]

所以在每对值上调用min来构造新列表

答案 1 :(得分:3)

[min(L1[0], L2[0]), min(L1[1], L2[1]), min(L1[2], L2[2])] 大致意味着:

map(min, [L1, L2])

因此[1,2]的最小值(每个列表的第一个元素)为1,[28,57]的最小值为28,[36,9]的最小值为9。

您可能想要{{1}}。

答案 2 :(得分:1)

声明:

map(min, L1, L2)

将两个列表的每个元素与相同的索引进行比较。

因此,
它执行:

list = []
list.append(min(1,2)) #1
list.append(min(28,57)) #28
list.append(min(36,9)) #9
print list

导致输出[1, 28, 9]

答案 3 :(得分:1)

让我们来看看the document

  

map(function, iterable, ...)

     

返回一个迭代器,它将函数应用于每个iterable项,   产生结果。如果传递了其他可迭代参数,   函数必须采用那么多参数并应用于项目   来自所有迭代并行。 ...

此处,并行表示来自不同iterable的相同索引的项目会传递给每个索引的function