如何在没有 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}]
更新:订单已保留。
我有这个字典列表:
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}]
更新:订单已保留。