在 Python 3.x 中,map() 函數預設回傳迭代器而不是列表。如果您想直接使用已對應的元素,這可能會很不方便。
一個常見的任務是將整數列表轉換為其十六進位表示形式。在Python 2.6中,使用map()函數很簡單,如下所示:
# Python 2.6 hex_list = map(chr, [66, 53, 0, 94]) # Return a list of hex characters
但是,在Python 3.1中,上面的程式碼回傳一個地圖物件:
# Python 3.1 hex_map = map(chr, [66, 53, 0, 94]) # Return a map object
要檢索Python 3.x中映射元素的實際列表,可以使用list()函數轉換map物件到列表中:
hex_list = list(map(chr, [66, 53, 0, 94]))
將整數列表對應到其十六進位表示的另一種方法是使用列表理解,如下所示:
hex_list = [chr(n) for n in [66, 53, 0, 94]]
這種方法不需要使用map()函數並建立一個列表
請注意,您仍然可以在Python 3.x 中迭代映射對象,而無需先轉換為列表:
for ch in map(chr, [65, 66, 67, 68]): print(ch) # Prints "ABCD"
以上是如何將Python 3的`map`物件轉換為清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!