Python str.format()方法无法按预期工作

NGa*_*bit 1 python

我正在尝试格式化我正在屏幕上打印的一些输出.这是我的代码:

someString = someList[someIndex] +  '{0:<8}'.format('\t') + someList[someOtherIndex]
print someString
Run Code Online (Sandbox Code Playgroud)

我的预期输出:

abcdefghi              someOutput
abcde                  someOtherOutput

**OR**
abcdefghi       someOutput
abcde           someOtherOutput

实际输出我得到:

abcdefghi              someOutput
abcde          someOtherOutput

问题1:为什么我没有得到预期的输出?具体来说,为什么第二列中的条目不对齐?
问题2:我应该在代码中更改什么才能获得预期的输出?

附加信息:我使用的是Python 2.6

感谢任何帮助.

Woo*_*kai 5

你必须对你打印的第一个字符串应用"填充",这样它就会将第二个字符串"推"到同一个点:

someString = '{0:<16}{1}'.format(someList[someIndex], someList[someOtherIndex])
Run Code Online (Sandbox Code Playgroud)

但是,请确保您需要的填充量大于您必须打印的最长的单词.

你之前做的只是打印第一个单词,然后打印带填充的'\ t'(总是相同的),最后是第二个单词.