Как мне распечатать 1-е место, 2-е место и др. c. до 5 места? - PullRequest
0 голосов
/ 06 января 2020

У меня есть программа, которая читает 5 лучших (или все оценки и имена пользователей, если в списке лидеров файла .csv менее 5 человек), называемая leaderboard2.csv.

Однако в python shell это говорит так:

Here is the Top 5 leaderboard:
Username - Score

123 - 74
example - 45
ok - 36
sample - 36
testing - 30

Я хотел бы сказать, 1-е место или 2-е место, поэтому рядом с каждой из строк выше в оболочке. Например, 2-е место = пример - 45.

Как мне отобразить это, как указано выше (Когда я это делаю, это совершенно неправильно, так как отображает всех в списке лидеров рядом с "1-е место =")

Я использую python 3.3. Кстати 4.

Заранее спасибо, вот мой код ниже:

import csv
from collections import Counter

scores = Counter()

with open('leaderboard2.csv') as f:
    for name,score in csv.reader(f):

    # convert score into integer
        score = int(score)
        scores[name] = score

# list the top five
print("Here is the Top 5 leaderboard:")
print("Username - Score")
print("")
for name, score in scores.most_common(5):
    print(name + " - " + str(score))

Ответы [ 2 ]

0 голосов
/ 06 января 2020

Так что это может быть не самое элегантное из решений, но вы можете перечислить список и использовать его и распечатать правильное место

import csv
from collections import Counter

scores = Counter()

with open('leaderboard2.csv') as f:
    for name,score in csv.reader(f):

    # convert score into integer
        score = int(score)
        scores[name] = score

# list the top five
print("Here is the Top 5 leaderboard:")
print("Username - Score")
print("")
place = 1
for i, v in enumerate(scores.most_common(5)):
  if i == 0:
    print("1st")
  elif i == 1:
    print("2nd")
  print(str(v[0]) + " - " + str(v[1]))
0 голосов
/ 06 января 2020

Вы можете просто перечислить most_common.

for i, common in enumerate(scores.most_common(5), 1):
    print(i, common[0] + " -", common[1])

Это, конечно, просто отобразит позицию (1,2,3,4,5), есть библиотеки и опции доступно для преобразования в первое / второе / третье

...