我有这样的词典列表:在字典中删除重复和列表值追加到一个关键
[{'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