thisのための受け入れられた答えについて質問があります。python辞書、それをどのように変換する
[{'type':k, 'items':v} for k,v in res.items()]
仕事をする、すなわち、それは同じキーで一覧表示する項目を組み合わせた:
あなたは、このコードは、理由を説明してもらえます。
thisのための受け入れられた答えについて質問があります。python辞書、それをどのように変換する
[{'type':k, 'items':v} for k,v in res.items()]
仕事をする、すなわち、それは同じキーで一覧表示する項目を組み合わせた:
あなたは、このコードは、理由を説明してもらえます。
あなたは
[{'type':k, 'items':v} for k,v in res.items()]
を説明してもらえさんはそれを離れてみましょう:res
のエントリを超える
for k,v in res.items()
反復処理し、それぞれk
とv
に各キーと値を割り当てます。{'type':k, 'items':v}
は、2要素の辞書を作成します。最初の要素はキー'type'
と値k
です。 2番目の要素はキー'items'
と値v
です。[...]
の効果は、手順2で説明したようにres
の各エントリが辞書に変換され、結果の辞書がリストに格納されるということです。式のまわりの角かっこは、list comprehensionになります。基本的に左の部分({'type':k, 'items':v}
)が各項目について評価され、結果がリストになります。
res.items
は、辞書の各エントリのキーと値のタプルを返します。
res
はそれがマップされた辞書だ
{'a': 7, 'b': 9}
(と言う
a
7
へと
b
9
に続いて、
res.items()
は以下のとおりです。
[('a', 7), ('b', 9)]
基本的に不変のリストで、中括弧はタプルを作るラウンド、 list comprehensionのforループは、タプルの要素を繰り返し処理し、一時的にそれらをk
とv
に割り当てます。
# First iteration
k = 'a'
v = 7
=> Add {'type': 'a', 'items': 7} to the result
# First iteration
k = 'b'
v = 9
=> Add {'type': 'b', 'items': 9} to the result
さて、結果はリスト
[{'type': 'a', 'items': 7}, {'type': 'b', 'items': 9}
[{'type':k, 'items':v} for k,v in res.items()]
で意味するように表示されます正確に何を意味します「からなるリスト(のように見えるの辞書:{'type': k, 'items': v}
)を、中に含まれる各k, v
ペアのためにres.items()
"。
この質問は不十分です。明確にしてください。 – Kekoa