1

たとえば、words = ["hello"、 "test"、 "string"、 "people"、 "hello"、 "hello"]という単語のリストがあり、単語の頻度を取得するために辞書を作成したいとします。 。

辞書が「カウント」と呼ばれているとしましょう

counts = {}
for w in words:
    counts[w] = counts.get(w,0) + 1

私が本当に理解していないこの部分は、counts.get(w.0)だけです。この本によると、通常はcounts [w] = counts [w] + 1を使用しますが、新しい単語に初めて遭遇したときは、countsに含まれないため、ランタイムエラーが返されます。それはすべてうまくてダンディですが、counts.get(w、0)は正確に何をしますか?具体的には、(w、0)表記とは何ですか?

4

4 に答える 4

7

辞書がある場合、は検索している単語を保持する変数であり、デフォルト値get()であるメソッドです。辞書に存在しない場合は、を返します。w0wget0

于 2011-03-08T17:20:42.437 に答える
6

FWIW、Python 2.7以降ではcollections.Counter、次のように操作することをお勧めします。

In []: from collections import Counter
In []: c= Counter(["hello", "test", "string", "people", "hello", "hello"])
In []: c
Out[]: Counter({'hello': 3, 'test': 1, 'people': 1, 'string': 1})
于 2011-03-08T18:53:57.670 に答える
4

ディクショナリget()メソッドでは、キーが存在しない場合、2番目の引数としてデフォルトを使用できます。に存在しない場合は、counts.get(w,0)を提供します。0wcounts

于 2011-03-08T17:20:10.280 に答える
0

ディクショナリのgetメソッドは、キーに格納されている値、またはオプションで、オプションの2番目のパラメータで指定されたデフォルト値を返します。あなたの場合、「このキーがまだディクショナリにない場合は、前のカウントで0を取得し、その値に1を追加して、ディクショナリに配置します」と伝えます。

于 2011-03-08T17:20:30.250 に答える