试图找出为什么我不能让Lambda使用写文件。 这是我的代码:
list = (i*2 for i in range(10))
file = open("text.txt", "a")
lambda i: (file.write(str(i) + "\n")), list
在收到以下错误消息之前,我甚至无法关闭文件:
(<function <lambda> at 0x021E1B30>, <generator object <genexpr> at 0x021EC418>)
答案 0 :(得分:0)
根据您的comment,我猜您要做的是:
map(lambda i: file.write(str(i) + "\n"), list)
但是,我认为您显然试图避免使用的代码更具可读性:
for i in list:
file.write(str(i) + "\n")
(另外,将Peter's note铭记于心......当您尝试使用list
内置函数并查找时,使用list()
作为变量会回来困扰您它被覆盖了。)