나는 다음과 같은 형태로 JSON에서 생산 된 사전의 여러 milions의 목록을 가지고있다. 목록의 크기 (최대 10-100 개)와 비교할 때 실제로 복제본은 거의 없습니다. 나는 각각의 복제본에 대한 사전 (또는 마지막으로, 결정 론적으로 중요하지 않다)을 취하고 싶다 _id
. JavaScript에서는 다음을 사용합니다 :Python - 복잡한 객체의 정렬 된 목록에서 중복을 제거 하시겠습니까?</p> <pre><code>{ "_id":XXX, "some_other":"fields", ... } </code></pre> <p>목록 안전 분류 중복 <code>_id</code>와 disctionaries이 <code>_id</code> 키 그러나이있다 할 필요가 :
list.sort((a,b)=>a._id>b._id?1:(a._id<b._id?-1:0))
.filter((ent,i,arr)=>i==0||ent!=arr[i-1])
그러나 나는 필터의 python 변형이 항목의 색인에 액세스 할 수 없습니까? 비슷한 일을 파이썬에서 할 수있는 비슷한 방법이 있습니까? 나는 내가 원하는 방식으로이 목록을 정렬 할 수있게 해주는 sorted(...)
함수를 찾았지만, 다음과 같은 중복을 필터링하는 방법을 알지 못한다.
당신이 sorted'와'filter''살펴 보았다?파이썬에는'map','filter','reduce' 구조체가 있습니다.'lambda args : '를 사용하여 Python (익숙하지 않은) 익명 함수 구문을 사용하여 상응하는 표현식을 작성할 수 있습니다. 필터링/매핑을 위해 자주 목록 이해력 (및 관련된 구문, 예를 들어'dict' comprehension,'set' comprehensions, 또는 generator expression)은 더 관용적 인 것으로 간주됩니다. –