创建输出的编号列表
Creating numbered list of output
如何编辑我的代码,使我的输出:
the 8512
and 7759
i 6182
to 6027
a 4716
of 4619
he 2873
in 2846
you 2777
was 2457
变成
1. the 8512
2. and 7759
3. i 6182
4. to 6027
5. a 4716
6. of 4619
7. he 2873
8. in 2846
9. you 2777
10. was 2457
我尝试使用枚举函数
for rank, (value,num) in enumerate(sorted_list):
然而,这给我留下了相同的输出。我能否以某种方式将排名附加到定义了 value 和 num 的列表中?
d = dictionary(word_list)
def sort_key (d):
return d[1]
number = int(sys.argv[1])
sorted_list = sorted(d.items(), key=sort_key, reverse=True)[:number]
for (value,num) in sorted_list:
value = value.ljust(5)
num = str(num).rjust(5)
print("{}\t{}".format(value,num))
您仍然会使用 enumerate()
;你没有展示你是如何使用它的,但它解决了你的问题:
for index, (value,num) in enumerate(sorted_list, start=1):
print("{}.\t{:<5}\t{:>5}".format(index, value,num))
我将你的 str.ljust()
和 str.rjust()
调用折叠到 str.format()
模板中;这具有额外的优势,它适用于您可以格式化的任何值,而不仅仅是字符串。
演示:
>>> word_list = '''\
... the 8512
... and 7759
... i 6182
... to 6027
... a 4716
... of 4619
... he 2873
... in 2846
... you 2777
... was 2457
... '''.splitlines()
>>> d = dict(line.split() for line in word_list)
>>> sorted_list = sorted(d.items(), key=lambda i: i[1], reverse=True)
>>> for index, (value,num) in enumerate(sorted_list, start=1):
... print("{}.\t{:<5}\t{:>5}".format(index, value,num))
...
1. the 8512
2. and 7759
3. i 6182
4. to 6027
5. a 4716
6. of 4619
7. he 2873
8. in 2846
9. you 2777
10. was 2457
如何编辑我的代码,使我的输出:
the 8512
and 7759
i 6182
to 6027
a 4716
of 4619
he 2873
in 2846
you 2777
was 2457
变成
1. the 8512
2. and 7759
3. i 6182
4. to 6027
5. a 4716
6. of 4619
7. he 2873
8. in 2846
9. you 2777
10. was 2457
我尝试使用枚举函数
for rank, (value,num) in enumerate(sorted_list):
然而,这给我留下了相同的输出。我能否以某种方式将排名附加到定义了 value 和 num 的列表中?
d = dictionary(word_list)
def sort_key (d):
return d[1]
number = int(sys.argv[1])
sorted_list = sorted(d.items(), key=sort_key, reverse=True)[:number]
for (value,num) in sorted_list:
value = value.ljust(5)
num = str(num).rjust(5)
print("{}\t{}".format(value,num))
您仍然会使用 enumerate()
;你没有展示你是如何使用它的,但它解决了你的问题:
for index, (value,num) in enumerate(sorted_list, start=1):
print("{}.\t{:<5}\t{:>5}".format(index, value,num))
我将你的 str.ljust()
和 str.rjust()
调用折叠到 str.format()
模板中;这具有额外的优势,它适用于您可以格式化的任何值,而不仅仅是字符串。
演示:
>>> word_list = '''\
... the 8512
... and 7759
... i 6182
... to 6027
... a 4716
... of 4619
... he 2873
... in 2846
... you 2777
... was 2457
... '''.splitlines()
>>> d = dict(line.split() for line in word_list)
>>> sorted_list = sorted(d.items(), key=lambda i: i[1], reverse=True)
>>> for index, (value,num) in enumerate(sorted_list, start=1):
... print("{}.\t{:<5}\t{:>5}".format(index, value,num))
...
1. the 8512
2. and 7759
3. i 6182
4. to 6027
5. a 4716
6. of 4619
7. he 2873
8. in 2846
9. you 2777
10. was 2457