python-3.x - 如何压缩我的代码以避免重复循环?
问题描述
我正在尝试制定每周膳食菜单,数据来自两个列表,一个用于膳食,另一个用于一周中的几天。
我想知道是否可以就“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
解决方案
如果您想避免在一周内重复相同的菜单:
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}")
推荐阅读
- css - 如何在多个类中设置图像样式
- mysql - 如何汇总 MySQL 表中的连续行
- spring-cloud-sleuth - Spring cloud sleuth 传播跨度上下文
- c# - 以普通文本格式导出 Excel
- c - 哪些组件使用语言环境变量?
- java - Websphere对象cahce实现不起作用
- php - 使用数组值作为新的多维数组键
- python - 在 SymPy 中从块矩阵构建矩阵
- monaco-editor - 如何向 Monaco 编辑器添加新的语言语法?
- apache-spark - 如何在 spark 1.6.3 中用 java 编写 spark 上下文,以便将文件转换为数据帧。