python输出的挂起缩进

python输出的挂起缩进,python,string,format,Python,String,Format,我正在尝试以以下格式打印一些数据: 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

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循环。从技术上讲,这给了我想要的输出,但似乎应该有一个比手动添加空间更令人满意的解决方案

提前谢谢

试试这个:

print("Data " + str(data_num) + ": ", end = "")
for k, d in enumerate(dataset):
    print(''.join(['\t\t' if k else '', d]))
除第一行外,每行将添加8个空格

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(制表符)作为另一种更简单的解决方案。

只需将\t用作制表符即可。您想要数据1:Foo1 Foo2 Foo3吗?