我有一个包含以下数据的列表。
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
有人有办法打印这两行吗?
我应该使用循环来完成我正在寻找的东西吗?
如果通过"一行",您只想将所有内容都放在一行上,则删除切片操作。
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
您不必使用 for 循环,只需进行两个print
调用:
print(' '.join(series[0:8]))
print(' '.join(series[8:16]))