請按照此代碼操作:def addition(n): return n + nnumbers = (1, 2, 3, 4) result = map(addition, numbers) print(list(result))輸出:[2,4,6,8]現在,當我再次對已經成為列表的結果應用 list() 時,結果結果為空。list(result)輸出: []為什么會這樣呢?
1 回答

函數式編程
TA貢獻1807條經驗 獲得超9個贊
地圖對象是一個生成器。
list(result)
涉及到迭代器的迭代。迭代器現已完成。當您重試時,沒有數據可返回,因此您有一個空列表。如果以某種方式重置迭代器,就可以獲得預期的結果。
這就像讀取整個文件,然后想知道為什么下一個read
循環不返回任何內容:你已經到了最后。
添加回答
舉報
0/150
提交
取消