Цикл внутри цикла, Создание верхнего списка X - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть функция ниже, чтобы выводить результаты 5 лучших ресторанов на основе рейтинга. Как добавить цикл for в этот цикл, чтобы вывод включал позицию в верхних 5?

def print_top_5(restaurant_list):
    sorted_list = sorted(restaurant_list, key = itemgetter("rating"),reverse = True)
    for restaurant in sorted_list[:5]:
        print restaurant["name"]
        print restaurant["rating"]

Спасибо!

1 Ответ

0 голосов
/ 19 ноября 2018

Попробуйте встроенную функцию Python enumerate:

def print_top_5(restaurant_list):
    sorted_list = sorted(restaurant_list, key = itemgetter("rating"),reverse = True)
    for idx, restaurant in enumerate(sorted_list[:5]):
        print(idx, restaurant["name"], restaurant["rating"])

Обратите внимание, что отсчет начинается с 0, поэтому ваш вывод будет выглядеть примерно так:

0 Restaurant 1 10
1 Restaurant 2 9
2 Restaurant 3 8.5

Если вы хотите, чтобы отсчет начинался с 1, просто добавьте 1 к idx:

print(idx+1, restaurant["name"], restaurant["rating"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...