【发布时间】:2013-02-22 02:00:07
【问题描述】:
我想使用列表推导复制以下代码的功能:
with open('file.txt', 'w') as textfile:
for i in range(1, 6):
textfile.write(str(i) + '\n')
我尝试了以下方法:
with open('file.txt', 'w') as textfile:
textfile.write(str([i for i in range(1, 6)]) + '\n')
但它(可以理解)打印[1, 2, 3, 4, 5],而不是单行上的一个数字。
对于“你为什么要这样做?”我没有答案;我只是想看看有没有可能。谢谢!
编辑:谢谢大家的回复;出于某种原因,我的印象是列表推导总是封装在 [] 中。
【问题讨论】:
-
列表推导总是被
[]包围。生成器表达式被()包围,也可以直接传递给函数而不用加倍(()) -
@gnibbler:今天第一次听说生成器表达式。谢谢!