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

String 使用秩&;格式化输出;使用ljust()和rjust()的间距,string,list,python-3.x,ranking,String,List,Python 3.x,Ranking,嗨,我很难将元组列表转换为排序格式 原始排序列表如下所示: [('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 w

嗨,我很难将元组列表转换为排序格式

原始排序列表如下所示:

[('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))
rjust也一样。 例如:

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

(Src:)

也可以在字符串上使用rjust和ljust,首先必须将数字转换为字符串。(str(num)) 使用ljust和rjust,您可以在打印中省去“\t” 分类:

因此,排序将使用成对的数字(索引1)。 它将为您提供降序,如果您需要升序,您可以使用:

sorted\u list.sort(key=lambda x:x[1],reverse=True)

编辑:

  • 编号等级:
您可以简单地使用一个迭代和索引元素:i

for i in range(len(list)): ...
或者枚举函数(更像pythonish)

Enumerate是基于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))
print(“{}.\t{:8}”。格式(i,value,num))

这样,您就不必使用ljust和rjust。它也可以这样做,但您的数据未经修改。-此外,它不会转换数字,您不必创建新的变量。

为列表创建编号排名需要什么?@Kasra 1。2.3.对于每一行,取决于列表中有多少单词,如图所示。那么您的预期输出是什么?似乎您的代码返回了一个可接受的结果output@Kasra我目前的输出看起来好像我不知道如何使用ljust()和rjust()来格式化代码和添加有序排名。我尝试了枚举函数进行排名,但它似乎只会导致我的行重复。非常感谢,似乎我没有将num转换为string。刚才需要创建编号的等级。
sorted_list.sort(key = lambda x: x[1]) 
for i in range(len(list)): ...
for (i, e) in enumerate(list):
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))