誰でもこの機能を手伝ってくれますか?コードを書く手がかりがなく、関数本体に書いたものが間違っています。タイプdict:リストである値
def get_quantities(table_to_foods: Dict[str, List[str]]) -> Dict[str, int]:
"""The table_to_foods dict has table names as keys (e.g., 't1', 't2', and
so on) and each value is a list of foods ordered for that table.
Return a dictionary where each key is a food from table_to_foods and each
value is the quantity of that food that was ordered.
>>> get_quantities({'t1': ['Vegetarian stew', 'Poutine', 'Vegetarian stew'],
't3': ['Steak pie', 'Poutine', 'Vegetarian stew'], 't4': ['Steak pie', 'Steak pie']})
{'Vegetarian stew': 3, 'Poutine': 2, 'Steak pie': 3}
"""
food_to_quantity = {}
for t in table_to_foods:
for i in table_to_foods[t]:
if i in table_to_foods[t]:
food_to_quantity[i] = food_to_quantity[i] + 1
return food_to_quantity
ありがとうございました。これは私の最初のコンピュータサイエンスコースなので、まだカウンターメソッドを学んでいませんでした。カウンターなしで機能を解決する方法があると思いますか?また、私の教授は私にfood_to_quantityを返すことを望みます。私はあまりにも多くを尋ねるなら、すみません。 –
このように 'sum'を使うと、多くの一時的な' Counter'オブジェクトが次のステップ( 'sum'特殊ケース[rejects]' str')の後にそれらを破棄して同じ非効率性を防止するだけですが、それは一般的な場合)。それをやり直してください。これは、 'dict(Counter(xはvのxのためのtable_to_foods.values()のためのxのためのカウンター)')として実行されます。 'sum'を使った時間はgenexpr入力で1つの' Counter 'を使ったときの5倍であり、入力が大きくなるにつれて悪化します)。 – ShadowRanger
私はメソッド@ShadowRangerを知らないが。助けてくれてありがとう。 –