ホームページ  >  記事  >  バックエンド開発  >  Pythonでdefaultdictを使用してデフォルト値を設定するにはどうすればよいですか?

Pythonでdefaultdictを使用してデフォルト値を設定するにはどうすればよいですか?

WBOY
WBOY転載
2023-04-26 17:07:091304ブラウズ

はじめに

辞書で特定の値を検索する場合、キーが存在しない場合、デフォルト値の代わりに keyerror エラーが返されます。デフォルト値を返したい場合は、 、 defaultdictFunction を使用できます。 Defaultdict は、Python の組み込み dict クラスのサブクラスです。dict と同じ機能を持ちますが、デフォルト値を持ちます。キー値が存在しない場合は、デフォルト値を返します。

Syntax

dict =defaultdict( factory_function)

defaultdict は、ファクトリ関数をパラメータとして受け入れることができます。factory_function には、list、set、str などを指定できます。 ., 関数 ket が存在しない場合、ファクトリ関数のデフォルト値が返されます。たとえば、list は [] に対応し、str は空の文字列に対応し、set は set() に対応し、int は 0 に対応します。

dict の通常の使用法は次のとおりです。

l=['A','B','C','D']
di={}

for i in l:
    print(i) # 'A
    di[i]+=1 # KeyError: 'A'

print(di)

Usedefaultdict()

from collections import defaultdict
dict1 = defaultdict(int)
dict2 = defaultdict(set)
dict3 = defaultdict(str)
dict4 = defaultdict(list)
dict4[1] = 666
dict4[2] = 888
print(dict1[0]) # 0
print(dict2[0]) # set()
print(dict3[0]) # 
print(dict4[0]) # []
print(dict4[1]) # 666
print("*" * 30)
print(dict1) # defaultdict(<class &#39;int&#39;>, {0: 0})
print(dict2) # defaultdict(<class &#39;set&#39;>, {0: set()})
print(dict3) # defaultdict(<class &#39;str&#39;>, {0: &#39;&#39;})
print(dict4) # defaultdict(<class &#39;list&#39;>, {1: 666, 2: 888, 0: []})

setdefault() の違い

dict.setdefault() メソッドには 2 つのパラメータがあり、1 つ目はパラメータ、2 つ目はデフォルト値です

lst = [&#39;A&#39;, &#39;B&#39;, &#39;C&#39;, &#39;D&#39;, &#39;e&#39;]
dic = {}
 
for i in lst:
    dic.setdefault(i, 0)
    dic[i] += 1
print(dic)# {&#39;A&#39;: 1, &#39;B&#39;: 1, &#39;C&#39;: 1, &#39;D&#39;: 1, &#39;e&#39;: 1}

setdefault()

setdefault() は、2 つのパラメータを受け取るディクショナリのインスタンス メソッドです。その使用方法はディクショナリの get() メソッドと似ていますが、get() メソッドよりも強力です。どちらも辞書キーのデフォルト値を設定します。

この 2 つの違いは、get メソッドで設定されたデフォルト値は元の辞書を変更しませんが、setdefault で設定されたデフォルト値は元の辞書の値を変更することです。

注: dict[key]=value を使用する場合、キーが存在しない場合はエラーが報告されます。dict.get(key) を使用する場合、キーが存在しない場合は、デフォルトの値が返されます。

dic1 = {"A": "a", "B": "b"}
x = dic1.get("E", "e")
print(x) # e
print(dic1) # {&#39;A&#39;: &#39;a&#39;, &#39;B&#39;: &#39;b&#39;}
 
dic2 = {"C": "c", "D": "d"}
y = dic2.setdefault("E", &#39;e&#39;)
print(y) # e
print(dic2) # {&#39;C&#39;: &#39;c&#39;, &#39;D&#39;: &#39;d&#39;, &#39;E&#39;: &#39;e&#39;}

defaultdict()

defaultdict は、コレクション モジュールにあるファクトリ関数で、辞書オブジェクトの構築に使用され、関数 (呼び出し可能) オブジェクトをパラメータとして受け取ります。パラメータによって返される型と、キーに対応する値の型は何ですか。

rreeee

Pythonでdefaultdictを使用してデフォルト値を設定するにはどうすればよいですか?

以上がPythonでdefaultdictを使用してデフォルト値を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。