繁体   English   中英

在列表中的三个数字后添加换行符

[英]Add a newline after three numbers in a list

我想在我附加到列表中的三件事之后添加一个新行。

例如,在我的代码中,我将for从 1 到 100 的循环,并且每个循环都将i添加到列表中,我的问题是我不知道如何执行每个循环,它会在我的result添加一个新行list ,所以输出将是:

1, 2, 3
4, 5, 6
7, 8, 9
.....

电流输出:

它只是将所有数字添加给我,而无需换行。

1, 2, 3, 4, 5, 6, 7, 8, 9......

代码:

first = []
second = []
third = []
result = []
for i in range(1, 101):
    first.append(i)
    second.append(i)
    third.append(i)
    result.append(third + second + third)
    result.append('\n')

print(result)

也许是这样的? 如果您需要更多详细信息,请告诉我。

for i in range(30):

    print('%3d, ' %i, end='')

    if (i+1) % 3 == 0:
        print()

输出:

  0,   1,   2, 
  3,   4,   5, 
  6,   7,   8, 
  9,  10,  11, 
 12,  13,  14, 
 15,  16,  17, 
 18,  19,  20, 
 21,  22,  23, 
 24,  25,  26, 
 27,  28,  29, 

如果您的目标是生成一个包含"\\n"作为每三个元素的列表,则可以使用模数运算符每 3 个条目添加一个"\\n"来实现此目的。

result = []
for i in range(1, 101):
  result.append(i)
  if len(result) % 3 == 0:
    result.append("\n")

编辑:

为清楚起见,为了打印result列表,请使用以下行

print(''.join(str(x) for x in result))

这将产生输出

123
456
789
...
result = ""
for i in range(1,101):
  result += f"{i}" + (", " if i % 3 else "\n")

print(result)

以最少的麻烦实现它。 当索引除以 3 没有余数时,它将在字符串中开始一个新行。 尽管一旦数字变大,将输出分开可能会更好。

result = ""
for i in range(1,101):
  result += f"{i}" + (",\t" if i % 3 else "\n")

您可以使用%运算符和printsep参数获取输出,如下所示:

same_line = []
for i in range(1, 101):
    same_line.append(i)
    if not i % 3 or i == 100:
        print(*(value for value in same_line), sep=', ')
        same_line = []

>>> 
1, 2, 3
4, 5, 6
7, 8, 9
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, 77, 78
79, 80, 81
82, 83, 84
85, 86, 87
88, 89, 90
91, 92, 93
94, 95, 96
97, 98, 99
100


这是你需要的:

temp = []
for i in range(100):
    temp.append(i)
    if i % 3 == 0:
        print(temp)
        temp = []

输出:

[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
...
[97, 98, 99]

这可以使用 zip 和一些棘手的列表操作在没有循环的情况下完成:

list(sum(zip(*[iter(range(1, 101))]*3, ['\n']*100), tuple()))

输出:

[1, 2, 3, '\n', 4, 5, 6, '\n', 7, 8, 9, '\n', 10, 11, 12, '\n', 13, 14, 15, '\n',16, 17, 18, '\n', 19, 20, 21, '\n', 22, 23, 24, '\n', 25, 26, 27, '\n', 28, 29, 30, '\n', 31, 32, 33, '\n', 34, 35, 36, '\n', 37, 38, 39, '\n', 40, 41, 42, '\n', 43, 44, 45, '\n', 46, 47, 48, '\n', 49, 50, 51, '\n', 52, 53, 54, '\n', 55, 56, 57, '\n', 58, 59, 60, '\n', 61, 62, 63, '\n', 64, 65, 66, '\n', 67, 68, 69, '\n', 70, 71, 72, '\n', 73, 74, 75, '\n', 76, 77, 78, '\n', 79, 80, 81, '\n', 82, 83, 84, '\n', 85, 86, 87, '\n', 88, 89, 90, '\n', 91, 92, 93, '\n', 94, 95, 96, '\n', 97, 98, 99, '\n']

如果您希望将其打印为原始示例,请使用以下内容:

print(*map(', '.join, zip(*[iter(map(str, range(1, 101)))]*3)), sep='\n')

输出:

1, 2, 3
4, 5, 6
7, 8, 9
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, 77, 78
79, 80, 81
82, 83, 84
85, 86, 87
88, 89, 90
91, 92, 93
94, 95, 96
97, 98, 99

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM