使用rank&amp ;;格式化输出使用ljust()和rjust()的间距

时间:2015-03-16 08:20:02

标签: string list python-3.x ranking

我很难将拼写列表转换为排名格式like so

原始排序列表如下所示:

[('the', 15549), ('and', 10119), ('of', 8838), ('to', 8278), ('i', 7446), ('a', 6778), ('in', 4757), ('was', 3497), ('it', 3427), ('he', 3367)]

我已转换为:

the 15549
and 10119
of  8838
to  8278
i   7446
a   6778
in  4757
was 3497
it  3427
he  3367

但是我不确定如何为列表创建编号排名,也不确定ljust()和rjust()的正确格式以均匀地排列等级,单词和数字。

for (value,num) in sorted_list:
    #value = value.ljust(value, 5)
    #num = num.rjust(num, 5)

    print("{}\t{}".format(value,num))

1 个答案:

答案 0 :(得分:0)

str.ljust(width[, fillchar])

同样适用于rjust。 例如:

str = "this is string example....wow!!!";

print str.ljust(50, '0');
    enter code here

结果:这是字符串示例....哇!!! 000000000000000000

(Src:http://www.tutorialspoint.com/python/string_ljust.htm

你也可以在字符串上使用rjust和ljust,你必须先将你的数字转换为字符串。 (str(num)) 通过ljust和rjust,您可以从打印中省略'\ t' 排序:

list.sort(key = <function>)

例如,如果您的列表名称是sorted_list:

sorted_list.sort(key = lambda x: x[1]) 

因此排序将使用您对中的数字(索引1)。 它会给你一个降序,如果你需要提升,你可以使用:

sorted_list.sort(key = lambda x: x[1], reverse = True)

编辑:

  • 编号排名:

你可以简单地使用和index元素迭代:i

for i in range(len(list)): ...

或枚举函数(更加诡异)

for (i, e) in enumerate(list):

枚举为0,因此您可以通过 start 参数进行修改。 结果是:

l.sort(key = lambda x: x[1], reverse = True)

for (i, (value,num)) in enumerate(l, start = 1):
    value = value.ljust(5)
    num = str(num).rjust(5)

    print("{}.\t{}{}".format(value,num))

您可以使用的其他格式:

print("{}.\t{:<8}{:>8}".format(i,value,num))

有了这个,你不必使用ljust和rjust。它也是这样,但您的数据未经修改。 - 它也不会转换数字,也不必创建新变量。