【问题标题】:Hanging indent for python outputpython输出的悬挂缩进
【发布时间】:2017-10-26 04:11:37
【问题描述】:

我正在尝试按以下格式打印一些数据:

Data 1: Foo1
        Foo2
        Foo3

Data 2: Stuff1
        Stuff2
        Stuff3

目前,我有一个跟踪数据集的变量,以及列表中每个数据集的内容。直觉上,我似乎应该能够简单地做到:

print("Data " + str(data_num) + ": ", end = "")
for d in dataset:
  print(d.rjust(len(d) + 8)

问题是这缩进了数据标签并给了我

Data 1:         Foo1
        Foo2
        Foo3
...

我目前的解决方案是简单地写

print(*dataset, sep = "\n        ")

代替for循环。这在技术上为我提供了我正在寻找的输出,但似乎应该有一个比简单地手动添加空格更令人满意的解决方案。

提前致谢!

【问题讨论】:

  • 而不是空格,只需使用 \t 作为制表符吗?
  • 你想要像 Data 1: Foo1 Foo2 Foo3 吗?

标签: python string format


【解决方案1】:

试试这个:

print("Data " + str(data_num) + ": ", end = "")
for k, d in enumerate(dataset):
    print(''.join(['\t\t' if k else '', d]))

除第一行外,每行加8个空格。

【讨论】:

    【解决方案2】:
    dataset = [['Foo1', 'Foo2', 'Foo3'], ['Foo1', 'Foo2', 'Foo3']]
    
    for _ in xrange(len(dataset)):
        print("Data " + str(_ + 1) + ":"),
        append_tab = False
        for d in dataset[_]:
            if append_tab:
                result = "\t" + d
            else:
                result = d
                append_tab = True
            print (result)
    

    您可以使用 /t(标签)作为替代且更简单的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多