-1

可能重复:
加入列表与 python 具有整数值

我在 python 中遇到了 for 循环和列表的语法问题。我正在尝试导出已导出到以空格分隔的文本文件的数字列表。

示例:文本文件中应该包含什么 0 5 10 15 20

我正在使用的代码如下,任何想法如何解决这个问题。

f = open("test.txt", "w")
mylist=[]
for i in range(0,20+1, 5):      
    mylist.append(i)
    f.writelines(mylist)

f.close()
4

4 回答 4

5

如果你想用来range()生成你的数字列表,那么你可以使用这个:

mylist = map(str, range(0, 20 + 1, 5))
with open("test.txt", "w") as f:
    f.writelines(' '.join(mylist))

map(str, iterable)将应用于str()此可迭代对象中的所有元素。

with用于使用上下文管理器定义的方法包装块的执行 这允许封装常见的try...except...finally使用模式以方便重用。在这种情况下,它会一直关闭f。使用它而不是手动调用是一个好习惯f.close()

于 2012-10-09T07:00:27.703 回答
4

试试这个:

mylist = range(0,20+1,5)
f = open("test.txt", "w")
f.writelines(' '.join(map(str, mylist)))
f.close()
于 2012-10-09T06:55:14.807 回答
1

您必须将整数列表转换为字符串map()上的列表以使其可连接。

mylist = range(0,20+1,5)
f = open("test.txt", "w")
f.writelines(' '.join(map(str, mylist)))
f.close()

另见Joining List has Integer values with python

于 2012-10-09T07:08:21.450 回答
0
>>> with open('test.txt', 'w') as f:
...     f.write(' '.join((str(n) for n in xrange(0, 21, 5))))
于 2012-10-09T07:01:30.423 回答