有没有办法使用列表理解来编写和打印?如果我使用For循环,我可以在for循环中做多个事情。
例如,
list1=[1,2,3,4,5,6,7,8,9]
write=open("test.txt",'w')
for i in list1:
print (i**2)
write.write(str(i**2)+"\n")
write.close()
如何使用列表理解做同样的事情?我可以使用列表理解进行打印或写入吗?
list1=[1,2,3,4,5,6,7,8,9]
write=open("test.txt",'w')
teste=[write.write(str(i**2) +"\n") for i in list1]
write.close()
答案 0 :(得分:3)
你不应该对副作用使用列表理解(cleanest way to call one function on a list of items)。
但是,您可以使用str.join
:
write.write("".join([str(i**2) +"\n" for i in list1]))
我不推荐这一点,但在一般情况下,因为如果list1
很大,它会在内存中创建整个字符串。
您可以替代使用writelines
write.writelines("{}\n".format(i**2) for i in list1)
答案 1 :(得分:1)
您可以使用如下的生成器表达式写入文件:
list1=[1,2,3,4,5,6,7,8,9]
f = open('filename.txt', 'a').writelines(str(pow(i, 2)+"\n" for i in list1)