はじめに
Python では、与えられた関数に基づいてリストの要素をグループ化できます。これは、各グループの出現回数を数えたい場合に便利です。このチャレンジでは、与えられた関数に基づいてリストの要素をグループ化し、各グループの要素数を返す関数を作成することが求められます。
This tutorial is from open-source community. Access the source code
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
Python では、与えられた関数に基づいてリストの要素をグループ化できます。これは、各グループの出現回数を数えたい場合に便利です。このチャレンジでは、与えられた関数に基づいてリストの要素をグループ化し、各グループの要素数を返す関数を作成することが求められます。
引数としてリスト lst
と関数 fn
を受け取る関数 count_by(lst, fn = lambda x: x)
を書きます。この関数は、与えられた関数に基づいてリストの要素をグループ化し、各グループの要素数を含む辞書を返す必要があります。
この問題を解決するには、次の手順を辿ることができます。
collections.defaultdict
を使用して辞書を初期化します。map()
を使用して与えられた関数をリストの各要素に適用します。関数は結果の辞書を返す必要があります。
from collections import defaultdict
def count_by(lst, fn = lambda x: x):
count = defaultdict(int)
for val in map(fn, lst):
count[val] += 1
return dict(count)
from math import floor
count_by([6.1, 4.2, 6.3], floor) ## {6: 2, 4: 1}
count_by(['one', 'two', 'three'], len) ## {3: 2, 5: 1}
このチャレンジでは、与えられた関数に基づいてリストの要素をグループ化し、各グループの要素数を返す方法を学びました。また、この問題を解決するために collections.defaultdict
と map()
をどのように使用するかも学びました。