目前获得此输出
[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
答案 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