首页 > 解决方案 > 如何压缩我的代码以避免重复循环?

问题描述

我正在尝试制定每周膳食菜单,数据来自两个列表,一个用于膳食,另一个用于一周中的几天。

我想知道是否可以就“for”循环的重复获得一些建议,因为我相信可能有更好的方法来做到这一点。

"""Creating Weekly food menu by randomly selecting an item from the 
'meals' list, matching the selected item to a day-of-the-week and
printing out the weekly menu."""

import random

meals = ['Steak', 'Chicken', 'Fish', 'Hamburger', 'Taco', 'HotDog' , 
         'Bier Rocks', 'Pork']

days = ['Monday: ' , 'Tuesday: ' , 'Wednesday: ']

for num in range(1):
    meals_selected = random.choice(meals)
    print(f"The selected meal for {days[0]} {meals_selected}")

for num in range(1):
    meals_selected = random.choice(meals)
    print(f"The selected meal for {days[1]} {meals_selected}")

for num in range(1):
    meals_selected = random.choice(meals)
    print(f"The selected meal for {days[2]} {meals_selected}")

我希望得到类似于以下的结果:

The selected meal for Monday:  Taco
The selected meal for Tuesday:  Fish
The selected meal for Wednesday:  Hamburger

标签: python-3.x

解决方案


如果您想避免在一周内重复相同的菜单:

import random

meals = ['Steak', 'Chicken', 'Fish', 'Hamburger', 'Taco', 'HotDog' , 'Bier Rocks', 'Pork']

days = ['Monday' , 'Tuesday' , 'Wednesday']

random.shuffle(meals)
for day, meal in zip (days, meals):
    print(f"The selected meal for {day}: {meal}")

推荐阅读