1

我创建了一组 6 个随机整数,我希望将其中的 500 个写入一个文本文件,所以它在文本文件中看起来像这样:

x, x, xx, x, xx, x \n x, x, x, xx, x, x ....等

(其中 x 是一个整数)

from random import shuffle, randint

def rn():
    return randint(1,49);

print "Random numbers are: " , rn(), rn(), rn(), rn(), rn(), rn()

一定有比粘贴最后一行 500 次更简单的方法吗?

编辑:为什么所有的反对票?如果这对你们来说是一个基本问题,我很抱歉,但对于学习 python 的人来说不是。

4

5 回答 5

3

这个怎么样:

print "Random numbers are: "
for _ in xrange(500):
    print rn(), rn(), rn(), rn(), rn(), rn()

如果要写入文本文件:

with open('Output.txt', 'w') as f:
    f.write("Random numbers are: \n")
    for _ in xrange(500):
        f.write("%s,%s,%s,%s,%s,%s\n" % (rn(), rn(), rn(), rn(), rn(), rn()))
于 2013-07-01T17:08:31.227 回答
0

迭代一个足够大的生成器。

for linenum in xrange(500):
   ...
于 2013-07-01T17:07:50.070 回答
0

使用for-loop

from random import shuffle, randint

def rn():
    return randint(1,49);

with open('out.txt', 'w') as f:
    for _ in xrange(500):
        f.write(str(rn()) + '\n')

如果您希望每行有 6 个:

with open('out.txt', 'w') as f:
    for _ in xrange(500):
        strs = "Purchase Amount: {}\n".format(" ".join(str(rn()) 
                                                          for _ in xrange(6)))
        f.write(strs)
于 2013-07-01T17:08:25.587 回答
0

当然我们有简单的方法:)

from random import randint

def rn():
    return randint(1, 49)

for i in xrange(500):
    print rn()
于 2013-07-01T17:09:27.230 回答
0

可以使用以下内容:

from random import randint
from itertools import islice

rand_ints = iter(lambda: str(randint(1, 49)), '')
print 'Random numbers are: ' + ' '.join(islice(rand_ints, 500))

并将它们转储到文件中:

with open('output', 'w') as fout:
    for i in xrange(500): # do 500 rows
        print >> fout, 'Random numbers are: ' + ' '.join(islice(rand_ints, 6)) # of 6 each
于 2013-07-01T17:10:49.950 回答