我有這樣的詞典列表:在字典中刪除重複和列表值追加到一個關鍵
[{'name': 'comet1', 'coordinates': [15., 10.12345612]},
{'name': 'comet2', 'coordinates': [11.45678762, 12.56789876]},
{'name': 'comet3', 'coordinates': [13.31512314, 14.68123912]},
{'name': 'comet3', 'coordinates': [10.78876782, 11.23234321]}]
我試圖刪除重複的名稱和相應的座標值追加到只有一個名字。所以列表可以是類似的東西
[{'name': 'comet1', 'coordinates': [15., 10.12345612]},
{'name': 'comet2', 'coordinates': [11.45678762, 12.56789876]},
{'name': 'comet3', 'coordinates': [13.31512314, 14.68123912, 10.78876782, 11.23234321]}]
上述數據是從外部文件獲得,並重新構造成這種格式。在使用defaultdict和其他方法後,我不太確定如何實現這一點。
這是我嘗試(邏輯錯誤是在第二個for循環。)
content = []
comets = {"name":comet_name, "coordinates":coordinates}
content.append(comets)
new_d = {}
for x in content:
for name in names: #names is a set containing all indivual comet names
if x["name"] == name:
print(x["name"])
new_d = {"name":name, "coordinates": x["coordinates"].append(coordinates)
歡迎!通常情況下,如果您向我們展示解決問題的嘗試,那麼我們可以幫助您對它們進行微調,而不僅僅是要求我們爲您提供解決方案。 StackOverflow不是代碼寫入服務。 –
你最終可能不希望這樣做,因爲從'[1,2,3,4,5,6]'提取有用的座標將比'[[1,2],[3,4]]更惱人, [5,6]]。你也應該使用元組來代替列表。 –
你真的想要保持清單的結構?合作真的很糟糕。使用從名稱到座標的單個字典映射會容易得多。事實上,我能想到的唯一有效方法就是先創建單個字典,然後用它來重建列表中的字典。 – Blckknght