如何在没有 Numpy 的情况下从字典列表中获取唯一的纬度和经度对?

How to Get Unique Latitude and Longitude Pair from List of Dictionary without Numpy?

我有这个字典列表:

position_list = [
   {'position.latitude': -1, 'position.longitude': -1}, 
   {'position.latitude': -3, 'position.longitude': 2}, 
   {'position.latitude': -3, 'position.longitude': 2}, 
   {'position.latitude': -4, 'position.longitude': 5},
   {'position.latitude': 5, 'position.longitude': -4}
]

我要的是这个:

position_list = [
   {'position.latitude': -1, 'position.longitude': -1}, 
   {'position.latitude': -3, 'position.longitude': 2}, 
   {'position.latitude': -4, 'position.longitude': 5}
   {'position.latitude': 5, 'position.longitude': -4}
]

我不能使用 NumPy 库,因为我不仅要在 Python 中这样做。 我该如何实现?

编辑 顺序应该保留。

您可以为此使用 frozenset()

In [1]: position_list = [
   ...:    {'position.latitude': -1, 'position.longitude': -1},
   ...:    {'position.latitude': -3, 'position.longitude': 2},
   ...:    {'position.latitude': -3, 'position.longitude': 2},
   ...:    {'position.latitude': -4, 'position.longitude': 5},
   ...:    ]

In [2]: position_list
Out[2]: 
[{'position.latitude': -1, 'position.longitude': -1},
 {'position.latitude': -3, 'position.longitude': 2},
 {'position.latitude': -3, 'position.longitude': 2},
 {'position.latitude': -4, 'position.longitude': 5}]

In [3]: [dict(s) for s in set(frozenset(d.items()) for d in position_list)]
Out[3]: 
[{'position.longitude': 5, 'position.latitude': -4},
 {'position.longitude': 2, 'position.latitude': -3},
 {'position.latitude': -1, 'position.longitude': -1}]

最简单的方法

>>> new = []
>>> for i in position_list:
...     if i not in new:
...         new.append(i)
...

>>> new
[{'position.latitude': -1, 'position.longitude': -1}, {'position.latitude': -3, 'position.longitude': 2}, {'position.latitude': -4, 'position.longitude': 5}, {'position.latitude': 5, 'position.longitude': -4}]

更新:订单已保留。