簡體   English   中英

Python(3.3)地圖功能行為

[英]Python(3.3) map function behaviour

import glob,os

os.chdir("C:\\path")

在這之后如果我執行一行

map(lambda y:os.remove(y),filter(lambda x:os.path.getsize(x)==0,glob.glob('*')))

它不會刪除大小為零的文件

但是如果我這樣做

list(map(lambda y:os.remove(y),filter(lambda x:os.path.getsize(x)==0,glob.glob('*'))))

它刪除文件。 這實際上如何工作?

在Python3中, map函數返回一個map object (而不是Python2中的列表)。
這是專為延遲評估而設計的,這意味着未在使用之前評估該值。 list對其進行評估。

Python 3.x中的map返回一個迭代器。 直到迭代器迭代,才會調用傳遞給map的函數。

list使用迭代器; 導致該函數被調用。

暫無
暫無

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

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