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

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