【问题标题】:Print x number of list and then insert new line in python打印 x 个列表,然后在 python 中插入新行
【发布时间】:2021-08-04 15:26:07
【问题描述】:

我有一个这样的整数列表

[1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1]

我想在一行中打印 10 个 int,然后插入一个新行,因此输出应如下所示:

[1, 2, 1, 2, 1, 1, 1, 1, 1, 1,

1、1、1、1、1、1、1、2、2、1,

1, 1, 1, 1, 1, 1, 2, 1, 1, 1,

1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

1、1、1、1、1、1、1、1、1、1]

我需要这样做,因为我需要将列表的输出截屏到我的论文中,如果列表看起来更整洁会更好。之前谢谢。

【问题讨论】:

  • 不能是列表,而是字符串。您还应该添加您尝试过的代码

标签: python list line


【解决方案1】:

所以我在玩昨天的事情,但我必须去上班才能完成它。 size 变量可让您更改长度,并在输出中很好地打印出来。如果您确实需要在输出中添加括号,这应该很容易。

希望这会为您指明正确的方向! ?

myList = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
size = 5  # Number Per Row
startIndex = 0 # Start at the beginning index of myList

try:
    for x in range(len(myList)):
        for y in range(size):
            if startIndex >= len(myList):
                break
            print(myList[startIndex], end=" ")
            startIndex = startIndex + 1
        print()
        if startIndex >= len(myList):
            break
except IndexError:
    print("\nIndex Error")  # Left this in for debugging purposes

【讨论】:

    【解决方案2】:

    如果你不想使用任何外部库,这里有一种方法:

    print('['+'\n'.join([','.join(map(str, a[i:i+x])) for i in range(0,len(a),x)])+']')
    

    【讨论】:

      【解决方案3】:

      试试pprint

      import pprint
      foo = [1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
      pp = pprint.PrettyPrinter(width=30, compact=True)
      pp.pprint(foo)
      

      结果:

      [1, 2, 1, 2, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
       1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1]
      

      你可以玩弄宽度和缩进等...

      【讨论】:

        【解决方案4】:

        如果您不想使用库,这里有一种方法:

        for i in range(len(l)//10+1):
            if i==0:
                k=str(l[i*10:i*10+10])
                k=k[:-1]+','
                print(k)
            elif i==len(l)//10:
                k=str(l[i*10:i*10+10])
                k=k[1:-1]+']'
                print(k)
            else:
                k=str(l[i*10:i*10+10])
                k=k[1:-1]+','
                print(k)
        

        输出:

        [1, 2, 1, 2, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
        1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1]
        

        【讨论】:

          【解决方案5】:

          试试这个。我已经严格测试了这个。

          n = [1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
          
          i = 0
          
          j = len(n)
          
          j = j - j%10
          
          if len(n)%10==0:
              j -= 10
          
          print(end='[')
          
          while i<j:
              print(*n[i:i+10], sep=',', end=',\n')
              i += 10
          
          print(*n[i:], sep=',', end=']') 
          

          输出:

          [1,2,1,2,1,1,1,1,1,1,
          1,1,1,1,1,1,1,2,2,1,
          1,1,1,1,1,1,2,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1]
          

          给出的示例有 67 个元素。我的输出包含 7 行。前 6 行,每行 10 个元素,最后一行 7 个元素。您可以将 10 替换为您想要的任何数字。

          【讨论】:

            【解决方案6】:

            我想添加另一个答案。它是更多的 Pythonic 和单行代码。

            a, x = list(range(10,77)), 5
            print('[', *[str(i)+',' if (j+1)%x!=0 else str(i)+',\n' for j, i in enumerate(a[:-1])],sep='',end=str(a[-1])+']')
            

            输出:

            [10,11,12,13,14,
            15,16,17,18,19,
            20,21,22,23,24,
            25,26,27,28,29,
            30,31,32,33,34,
            35,36,37,38,39,
            40,41,42,43,44,
            45,46,47,48,49,
            50,51,52,53,54,
            55,56,57,58,59,
            60,61,62,63,64,
            65,66,67,68,69,
            70,71,72,73,74,
            75,76]
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-01-03
              • 1970-01-01
              • 1970-01-01
              • 2018-07-11
              相关资源
              最近更新 更多