簡體   English   中英

以下地圖功能如何工作?

[英]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 mapNone的特殊用法已在Python 3中刪除。

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

地圖文檔中

如果給出了多個序列,則使用由每個序列的對應項組成的參數列表調用該函數,如果並非所有序列都具有相同的長度,則將None替換為缺失值。

如果該函數為None,則返回序列項的列表

將序列與*運算符配合使用,可根據序列中的位置將其zip

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM