【问题标题】:Printing Array on seperate lines在单独的行上打印阵列
【发布时间】:2018-08-30 17:45:13
【问题描述】:

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

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

有没有人可以打印两行?

我应该使用循环来完成我正在寻找的东西吗?

【问题讨论】:

  • 你能澄清一下你的列表定义吗?是series = ['1/3/2015', 4, 18, 43, 46, 55, 25, 3, '12/30/2015', 12, 36, 38, 54, 61, 22, 3]吗?还是别的什么?
  • 想要的输出是什么?
  • 我希望列表打印出单独的两行 12/30/2015 12 36 38 54 61 22 3 12/26/2015 27 40 44 59 65 20 2

标签: python arrays list printing


【解决方案1】:

如果通过“单行”您只想将所有内容放在一行上,则删除 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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢你的作品。我正在尝试通过小项目学习这种语言。我试着等到我被卡住了再问问题。
    • OP 是否特别提到他的数据已被交换,并且在您编辑他的帖子时没有引号?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    相关资源
    最近更新 更多