在单独的行上打印阵列

时间:2018-08-30 17:45:13

标签: python arrays list printing

我有一个包含以下数据的列表。

1/3/2015
4
18
43
46
55
25
3
12/30/2015
12 
36 
38 
54 
61 
22 
3

我正在尝试获取一系列数字以打印一行。我已经尝试过print(" ".join(series[0:8])),但它仅打印出最后一行

2016/12/31 1 3 28 57 67 9 2

2016/12/28 16 23 30 44 58 4 2

有人能同时打印两行吗?

我应该使用循环来完成我想要的吗?

2 个答案:

答案 0 :(得分:0)

您不必使用for循环,您只需进行两个print调用:

print(' '.join(series[0:8]))
print(' '.join(series[8:16]))

答案 1 :(得分:0)

如果通过“单行”只希望将所有内容都放在一行上,则删除slice操作。

print(" ".join(series))
#Out> 1/3/2015 4 18 43 46 55 25 3 12/30/2015 12 36 38 54 61 22 3

但是,如果您知道所有商品的长度都相同,并且希望它们位于不同的行上,则:

for i in range(0, len(series), 8):
    print(" ".join(series[i:i+8]))
#Out> 1/3/2015 4 18 43 46 55 25 3
#Out> 12/30/2015 12 36 38 54 61 22 3

以上内容使用range()函数的step参数跳过了8个元素。切片仅使用该部分将它们打印在单独的行上。

以下内容利用列表理解来获取您的数据块并完成与上述相同的操作:

for section in (series[i:i + 8] for i in range(0, len(series), 8)):
    print(" ".join(section))
#Out> 1/3/2015 4 18 43 46 55 25 3
#Out> 12/30/2015 12 36 38 54 61 22 3