[英]How does the following map function work?
>>>uneven = [['a','b','c'],['d','e'],['g','h','i']]
>>>map(None,*uneven)
O / P:[('a','d','g'),('b','e','h'),('c',無,'i')]
上面的代碼可用於查找矩陣的轉置。 但是,iam無法理解其工作原理。
使用*
運算符時,列表分為地圖的位置參數。 這是您實際正在運行的:
>>> map(None, ['a','b','c'], ['d','e'], ['g','h','i'])
當您將多個可迭代對象傳遞給map
,該函數(在本例中為None
)將並行應用於每個可迭代對象。 它首先處理'a', 'd', 'g'
,依此類推。
編輯:正如下面的喬恩(Jon)所指出的那樣,當您將None
作為map
函數傳遞時,它會以特殊形式成為身份函數,即lambda id: id
。 在map
中None
的特殊用法已在Python 3中刪除。
map(function, sequence[, sequence, ...]) -> list
從地圖文檔中
如果給出了多個序列,則使用由每個序列的對應項組成的參數列表調用該函數,如果並非所有序列都具有相同的長度,則將None替換為缺失值。
如果該函數為None,則返回序列項的列表
將序列與*
運算符配合使用,可根據序列中的位置將其zip
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.