私はいくつかの辞書場合は保存されたレコードのコレクションを持っている:試合値
d1 = {'id':['223','444'],'value_1':['v1','x1']}
d2 = {'id': ['223','666'],'value_2':['v2','x2']}
d3 = {'id':['223','444'], 'value_3':['v3','x3']}
私は最初の辞書のIDと一致するすべてのレコードを検索し、すべてと新しいものにそれらを保存したいですフィールド、「_1」、「_2」と「VALUE_3」:
d_4 = {'id':[],'value_1':[],'value_2':[],'value_3':[]}
レコードの1つは、私が追加されます「----」はフィールド内のすべての辞書に存在しない場合。だから、出力は、この場合には、次のようになります。
d_4
{'id': ['223', '444'],
'value_1': ['v1', 'x1'],
'value_2': ['v2', '----'],
'value_3': ['x3', 'x3']}
私はそうするように、このコードを書いた:
for i,id_d1 in enumerate(d1['id']):
d_4['id'].append(id_d1)
d_4['value_1'].append(d1['value_1'][i])
if id_d1 in d2['id']:
for j,id_d2 in enumerate(d2['id']):
if id_d1==id_d2:
d_4['value_2'].append(d2['value_2'][j])
else:
d_4['value_2'].append('----')
if id_d1 in d3['id']:
for k,id_d3 in enumerate(d3['id']):
if id_d1==id_d3:
d_4['value_3'].append(d3['value_3'][j])
else:
d_4['value_3'].append('----')
しかし、良いアプローチのように思えるしません。
この権利を理解しましたか? rレコードは、実際にはIDの**リストである 'id'メンバーと、実際には値のリストである' value_x'メンバーを持ち、各値はidに対応していますか?つまり、 'd1 ['value_1'] [0]'は 'd1 ['id'] [0]'に対応する値ですか? –
これは、レコード "*がすべての辞書に存在しない場合、そのフィールドに '----'を追加すると言うので、' d1' idsが参照かどうかはわかりません。 'd3 = {'id':['223'、 '555']、 'value_3':['v3'、 'x3']}' '---- '' 'd_4'では' value_3'、 'value_1'でも'? – zezollo
@マシューブリッドはい、それは正しいです –