如何在每个循环后添加一个新行?

时间:2016-08-28 01:49:46

标签: python python-3.x while-loop

目前获得此输出

[1, 1, 3, '\n']
[1, 1, 3, '\n', 7, 7, 7, '\n']

寻找此输出

[1, 1, 3]
[7, 7, 7]

代码:

    import random
    my_list=[]
    n = 3
    m = 1
    while m < 10:
    for i in range(n): # repeats the following line(s) of code n times
        my_list.append(random.randrange(0,9))
    my_list.append("\n")
    print(my_list)
    m = m+1

3 个答案:

答案 0 :(得分:2)

import random
n = 3
m = 0
my_list = []
while m < 10:
    my_list.append([])
    for i in range(n):
        my_list[m].append(random.randrange(0, 9))
    print(my_list[m])
    m = m + 1

此代码在my_list内创建子列表,并在每次迭代时打印出每个子列表。所以你的输出可能是这样的:

[0, 4, 8]
[3, 1, 5]
...
[9, 2, 5]

my_list会存储所有子列表,如下所示:[[0, 4, 8], [3, 1, 5], ..., [9, 2, 5]]

答案 1 :(得分:2)

我同意@Neil看起来你想要一个二维数组。这是另一种方法。

from random import randint

my_list = [[randint(1, 11) for i in xrange(10)] for j in xrange(randint(5, 10))]

这将创建一个0到9的数字对象5到9次。例如[[2,3,4,5 ...],[1,2,2,3 ...] ...]

然后你只需迭代对象就可以按照你想要的方式打印出来

for item in my_list:
  print item

<强>更新

鉴于您在此处回复的评论是随机数文件生成器的示例。

from random import randint

#number of lines to create on the file
n = 3
with open('my_file.txt', 'w') as cout:
  for i in xrange(n):
    cout.write('{0}\n'.format(randint(1000, 10000))) #this is exclusive so it will only go as high as 9999

如果您希望每行上有更多数字格式化write方法中的文本。 E.G

cout.write('{0}, {1}\n'.format(randint(1000, 10000), randint(1000, 10000)))

答案 2 :(得分:1)

将my_list = []放在外部循环中,每次都重新初始化它。此外,如果您不想要换行符,请不要将其附加到my_list。如果您希望同一行上的所有输出都使用可选的arg end来打印函数。

import random
n = 3
m = 1
while m < 10:
    my_list = []
    for i in range(n):
        my_list.append(random.randrange(0,9))
    print(my_list, end="")
    m += 1