【发布时间】:2020-12-18 10:40:17
【问题描述】:
我正在尝试为函数的第 3-6 行编写一个列表推导。它根据guests_diet 中的选择返回相关餐厅。结果应该是字符串“对不起,没有餐厅符合您的限制”。该功能有效,但我面临着做列表理解的挑战。我想出了下面的代码,但结果不正确。有人可以帮忙吗?
尝试生成错误结果的代码 -
ans = [restaurant.append(key) for key, value in rest_names.items()\
for x in range(len(cuisine)) if cuisine[x] in value]
代码 -
def no_you_pick(rest_names, cuisine):
restaurant = []
for key, value in rest_names.items():
for x in range(len(cuisine)):
if cuisine[x] in value:
restaurant.append(key)
restaurant.sort()
if len(restaurant) == 0:
return "Sorry, no restaurants meet your restrictions"
elif len(restaurant) == 1:
return ' '.join(restaurant)
return ', '.join(restaurant)
grading_scale = {"blossom": ["vegetarian", "vegan", "kosher", "gluten-free", "dairy-free"], \
"jacob's pickles": ["vegetarian", "gluten-free"], \
"sweetgreen": ["vegetarian", "vegan", "gluten-free", "kosher"]}
guests_diet = ["buttered-lobster"]
print(no_you_pick(grading_scale, guests_diet))
【问题讨论】: