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)
编辑:
- 编号等级:
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))