2

私は新しい Python プログラマーで、辞書の .get メソッドを読んでいたので、自分で使用しようとしました。私はいくつかの非常に単純なコードを試しました:

h = dict()
h.get('a', 1)
print (h)

そして、インタプリタは以下のみを返しました:

{}

.get メソッドは、要求したキーが見つからない場合に指定したデフォルト値を返すことは知っていますが、実際に辞書に新しいキーとバケットを作成しますか? もしそうなら、私のコードが新しいアイテムを返さないのはなぜですか? ありがとう

4

4 に答える 4

0

h.get('a', 1)1には挿入されませんh。値が存在しない場合にデフォルト値を挿入するメソッドが必要な場合は、次のようにしますsetdefault

h = {}
h.setdefault('a', 1)
print h  # prints {'a': 1}
h.setdefault('a', 2)
print h  # still prints {'a': 1}
于 2013-09-03T20:52:22.513 に答える
0

'a'キーが存在しないため、代わりに値が1返されます。これがメソッドの動作ですget()getメソッドは、キーに対応する値、または代わりに渡す 2 番目のパラメーター (この場合は 1) を返します。

キーを設定する'a'と、動作が異なります。

In [10]: h['a']=1

In [11]: h
Out[11]: {'a': 1}

In [12]: h.get('a',3)
Out[12]: 1

さらに詳しい情報が必要な場合は、メソッドがどのように機能するかを説明しているこのドキュメントを参照してください。get()

于 2013-09-03T20:52:38.477 に答える
0

dictName.get()に似ていtry...catchます。通常は例外を返す値が存在しない場合、代わりに別の値が返されます。

h = {}
h.get('a', 1)
print h

h.get('a', 1)に対してアクションを実行しませんh。(別の)変数やテスト/印刷などに(再)割り当てることができる値を返すだけです。

h = {}
print h.get('a', 1)

. . . が存在しないため1、戻ります。h['a']でも。. .

h = {}
h['a'] = 0
print h.get('a', 1)

. . . が存在する0ため、戻ります。h['a']

于 2013-09-03T21:00:31.533 に答える