タプルの私のリスト:
list = [('WALMART', '601 12th Avenue Northeast',916523),
('WALMART SHARED', '1953 west brown street',916523)]
以下に示すように、タプルのリストを辞書に変換したかった:
dict =
{
916523: [{
'cancmpname': 'WALMART',
'canaddress': '601 12th Avenue Northeast',
},
{
'cancmpname': 'WALMART SHARED',
'canaddress': '1953 west brown street',
},
]
}
これまでの私のコード:
dict = {}
for result in list:
dict[result[2]]={}
dict[result[2]]['cmpname']=result[0]
dict[result[2]]['cmpaddress']=result[1]
これにより、リストが最新の値を持つ辞書に変換され、両方の結果が辞書配列値として追加されることはありません。
私のコードの結果:
dict =
{
916523: {
'cancmpname': 'WALMART SHARED',
'canaddress': '1953 west brown street',
}
}
defaultdictソリューションの方がクリーンだと思いますが、ライブラリを使用しないソリューションは次のとおりです。
li = [('WALMART', '601 12th Avenue Northeast',916523),
('WALMART SHARED', '1953 west brown street',916523)]
d = {}
for name, address, zipcode in li:
d.setdefault(zipcode, []).append(dict(cancmpname=name, canaddress=address))
いくつかのメモ
list
とdict
あなたの変数に名前を付けるために、あなたは効果的に曇らせるビルトインタイプsetdefault
、値(この場合は空のリスト)を作成し、そのキーに割り当てますsetdefault
何もしませんsetdefault
は、取得したそのキーの値を返し、新しい辞書を追加します。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加