<p>以下守则适用—</p>
<pre><code>def no_you_pick(rest_names, cuisine):
restaurant = [key for key,value in rest_names.items() for x in range(len(cuisine)) if cuisine[x] in value]
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))
print(no_you_pick(grading_scale, ['vegan']))
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>Sorry, no restaurants meet your restrictions
blossom, sweetgreen
</code></pre>
<hr/>
<p>您不需要附加到<code>restaurant </code></p>
<blockquote>
<pre><code>ans = [restaurant.append(key) for key, value in rest_names.items() for x in range(len(cuisine)) if cuisine[x] in value]
</code></pre>
</blockquote>
<p>由于您使用的是列表理解,因此可以直接构建列表-<code>restaurant</code>,并且只有符合给定条件的键才会添加到列表中。在这里,您不需要编写<code>restaurant.append(key)</code>,而可以像上面的代码那样,使用<code>restaurant</code>上的列表理解轻松地直接附加键</p>