我很难将拼写列表转换为排名格式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))
答案 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。它也是这样,但您的数据未经修改。 - 它也不会转换数字,也不必创建新变量。