我具有以下功能,用于根据评分输出排名前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"]
谢谢!
答案 0 :(得分:0)
尝试使用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开始,只需在idx
上加1:
print(idx+1, restaurant["name"], restaurant["rating"])