循环内循环,创建前X个列表

时间:2018-11-19 00:22:08

标签: for-loop

我具有以下功能,用于根据评分输出排名前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 :(得分: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"])