与えられたキーから辞書を作成することが必要になる場合があります。これを大まかに行うには時間がかかり、面倒な作業になります。したがって、fromkeys()は、1つの方法だけを使用してこの問題を簡単に解決するのに役立ちます。この記事では、この機能に関連する運用面とその他の側面について説明します。 p>
構文: fromkeys(seq、val) p>
パラメーター:
seq: 辞書に変換されるシーケンス。
val:生成されたキーに割り当てる必要のある初期値...デフォルトはNoneです。 p>戻り値:値が指定されていない場合はNoneにマップされ、それ以外の場合はフィールドに指定された値にキーがマップされたディクショナリ。 p> blockquote>
コード#1: fromkeysのデモンストレーション() p>
p> p>
#Python3デモコード
#キーの操作()
p>
#初期化シーケンス
p>
seq
=
{
’a’
、
’b’
、
’c’
、
’d’
、
’e’
}
p>
#fromkeys()を使用してシーケンスをdictに変換
#なしを使用して初期化
p>
res_dict
=
dict
。 fromkeys(seq)
p>
#作成されたdictを印刷
p>
(
"None値で新しく作成されたdict:"
+
str
(res_dict))
p>p>
#fromkeys()を使用してシーケンスをdictに変換
#1で初期化
p>
res_dict 2
=
dict
。 Fromkeys(seq、
1
)
p>
#作成されたdictを印刷
p>
印刷
(
"値として1を使用して新しく作成されたdict:"
+
str
(res_dict2))
p> td> tr> tbody> table>p>
終了: p>
値がNoneの新しく作成されたdict:{’d’:なし、’a’:なし、’b’:なし、’c’:なし、’e’:なし}
値として1を使用して新しく作成されたdict:{’d’:1、’a’:1、’b’:1、’c’:1、’e’:1} p> < / blockquote>可変オブジェクトを値として使用するfromdict()の動作: p>
fromdict()関数は、多重化可能なオブジェクトをデフォルト値として指定することもできます。ただし、この場合、ディクショナリからディープコピーが作成されます。つまり、元のリストに値を追加すると、すべてのキー値で追加が行われます。 p>
防止策:特定の辞書理解手法を使用して、元のリストをキー値として指さない新しいリストをキー値として作成できます。 p>
コード#2:可変オブジェクトを使用した動作を示します。 p>
p> p>
p>
< td class = "code">
#Python3デモコード
#可変オブジェクトでの動作
p>
#シーケンスとリストの初期化
p>
seq
=
{
’a’
、
’b’
、
’c’
、
’d’
、
’e’
}
p>
lis1
=
[
2
、
3
]
p>
#fromkeys()を使用してシーケンスをdictに変換
#通常のメソッドを使用
p>
res_dict
=
dict
。 fromkeys(seq、lis1)
p>
#作成されたdictを印刷
p>
(
"リスト値を使用して新しく作成されたdict: "
p>
+
str
(res_dict))
p>< br />
#lis1に追加
p>
lis1.append(
4
)
p>
#追加後にdiktatを印刷する
#すべての値で追加が行われることに注意してください
p>
(
"追加後のリスト値を含むdict:"
p>
+
str
(res_dict))
p>p>
lis1
=
[
2
、
3
]
p>
(
’’
)
p>
#fromkeys()を使用してシーケンスをdictに変換
#dictを使用します。理解する
p>
res_dict2
=
{key:
list
(lis1)
for
キー
in
seq}
p>
#作成されたdictを印刷
p>
(
"リスト値を使用して新しく作成されたdict: "
p>
+
str
(res_dict2))
p>
#lis1に追加
p>
lis1.append(
4
)
p>
#追加後にdiktatを出力します
#現在は追加されていないことに注意してください。
p>
(
"リスト付きの辞書追加後の値(変更なし): "
p>
+
str
(res_dict2))
p> td> tr> tbody> table>p>
出力: p>
リスト値を使用して新しく作成されたdict:{’d’:[2、3]、’e’:[2、3]、’c’: [2、3]、’a’:[2、3]、’b’:[2、3]}
追加後のリスト値を含むdict:{’d’:[2、3、 4]、’e’:[2、3、4]、’c’:[2、3、4]、’a’:[2、3、4]、’b’:[2、3、4] } p>リスト値を使用して新しく作成されたdict:{’d’:[2、3]、’e’:[2、3]、’c’:[2、3]、’a’ :[2、3]、’b’:[2、3]}
追加後のリスト値を含むdict(変更なし):{’d’:[2、3]、’e’: [2、3]、’c’:[2、3]、’a’:[2、3]、’b’:[2、3]} p> blockquote>Shop
Latest questions
Wiki