我对格式化输出有疑问。非常简单,但我已经做了10个小时的工作,所以我无法弄清楚为什么它不起作用
elif command.startswith("TOP") and len(command) > 3:
digi_trans = str.maketrans('', '', string.digits)
char_trans = str.maketrans('', '', string.ascii_letters)
bracket_trans = str.maketrans('', '', "[']")
subset = command.translate(digi_trans)[3:]
if subset == "EDITORS":
top_names = []
count = 0
count_limit = int(command.translate(char_trans))
top_names = sorted(name_temp.items(), key=lambda x:x[1], reverse=True)
largest = heapq.nlargest(count_limit, top_names, key=operator.itemgetter(1, 1))
print(largest)
这是我的代码中弄乱我的部分。 top_names列表只是两个项目对的排序列表,一个名称和一个值。
它目前输出(假设我想要命令中的前2个值):
[('Tzartzam', [16]), ('Quercusrobur', [14])]
我想输出这样的东西:
--------------------
Tzartzam [16]
Quercusrobur [14]
--------------------
有趣的是,我已经拥有了我的程序的一部分几乎完全相同的东西,但我只是无法理解我在做什么不同所以如果有人指出我,我会很感激正确的方向:(
答案 0 :(得分:0)
你可以使用rjust和ljust:
top_names=[('Tzartzam', [16]), ('Quercusrobur', [14])]
print "--------------------"
for n in top_names:
print n[0].ljust(16),str(n[1][0]).rjust(3)
print "--------------------"
输出:
--------------------
Tzartzam 16
Quercusrobur 14
--------------------