我無法弄清楚爲什麼這個map函數正在產生它產生的輸出。的代碼如下:具有min參數和兩個列表的Python映射函數
L1 = [1, 28, 36]
L2 = [2, 57, 9]
print map(min, L1, L2)
輸出爲: [1,28個,9]
我明白它採取了最小值從第一清單中,但是爲什麼它不會從取2第二,取而代之。9.感謝任何反饋,謝謝。
我無法弄清楚爲什麼這個map函數正在產生它產生的輸出。的代碼如下:具有min參數和兩個列表的Python映射函數
L1 = [1, 28, 36]
L2 = [2, 57, 9]
print map(min, L1, L2)
輸出爲: [1,28個,9]
我明白它採取了最小值從第一清單中,但是爲什麼它不會從取2第二,取而代之。9.感謝任何反饋,謝謝。
結果從
[min(L1[0], L2[0]), min(L1[1], L2[1]), min(L1[2], L2[2])]
所以min
由被稱爲上每對值來構建新的列表
map(min, L1, L2)
裝置大致此:
[min(L1[0], L2[0]), min(L1[1], L2[1]), min(L1[2], L2[2])]
所以min [1,2](每個列表的第一個元素)爲1,[28,57]的min爲28,[36,9]的min爲9.
您可能需要map(min, [L1, L2])
。
聲明:
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]
讓我們來看看the document:
map(function, iterable, ...)
返回該APPLI一個迭代es函數爲可迭代的每個項目,產生結果 。如果傳遞其他迭代參數,則 函數必須採用多個參數,並將所有迭代項以並行的形式應用於項目 。 ...
這裏,並聯指從不同iterable
相同索引的項被傳遞到function
每個索引。
你的意思是說''[1,2]'作爲結果嗎?如果不是,你需要什麼? –