【问题标题】:How to add a new line after each loop?如何在每个循环后添加新行?
【发布时间】:2016-08-28 01:49:45
【问题描述】:

目前正在获取此输出

[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

【问题讨论】:

  • 你能再具体一点吗?您希望结果在打印时以某种方式显示?我看起来你想要一个二维数组。
  • @retcentroot 尝试创建一个随机数文件进行测试(3485、6758、8094),但每组 4 个数字在一个新行上。

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


【解决方案1】:
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]]

【讨论】:

    【解决方案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)))
    

    【讨论】:

    • 有没有办法添加一个逻辑来删除重复的数字(如果有的话)?
    • 不要使用列表,而是使用集合。
    【解决方案3】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2016-08-03
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-25
      相关资源
      最近更新 更多