2

辞書を含む 2 つのリストがあります。

list105 = [
{'Country': 'Zimbabwe', 'GDP/Pop 2005': 281.0751453319367}
{'Country': 'Zambia', 'GDP/Pop 2005': 654.055392253311}
{'Country': 'Congo (Dem. Rep.)', 'GDP/Pop 2005': 115.37122637190915}
]

list202 = [
{'Country': 'Vietnam', 'GDP/Pop 2002': 633.4709249146734}
{'Country': 'Zambia', 'GDP/Pop 2002': 1198.4556066429468}
{'Country': 'Vanuatu', 'GDP/Pop 2002': 1788.4344216880352}
]

辞書の両方のリストを反復処理し、「Country」キーを照合し、いずれかの辞書のすべての一意のキーを 3 番目のリストで作成された新しい辞書に追加することは可能ですか?たとえば、上記に続いて、3 番目のリストには次が含まれます。

list2and3 = [
{'Country': 'Zambia', 'GDP/Pop 2005': 654.055392253311, 'GDP/Pop 2002': 1198.4556066429468}
]

私は次のようなものから始めました:

list2and3 = []
for line in list105:
    for row in list202:
        if line['Country'] == row['Country']:
            #do something and append to list2and3
4

3 に答える 3

1

最初のリストを dict に変換します。

d = {x['Country']:x for x in list105}

次に、2 番目のリストを繰り返し、辞書にデータを追加します。

for item in list202:
    key = item['Country']
    if key in d:
        d[key].update(item)
    else:
        d[key] = item

最後に、適用.values()して dict をリストに戻します。

newlist = d.values()

注: このデータ構造は最適ではありません。再考を検討してください。

于 2013-06-03T09:25:07.230 に答える