biglist =
[
{'title':'U2 Band','link':'u2.com'},
{'title':'ABC Station','link':'abc.com'},
{'title':'Live Concert by U2','link':'u2.com'}
]
"u2.com"이 중복되어 목록의 세 번째 요소를 제거하고 싶습니다. 중복 "링크"요소를 원하지 않습니다. 그것은이 결과 수 있도록이 작업을 수행 할 수있는 가장 효율적인 코드 란 :목록에서 이러한 중복 파일을 제거하는 방법 (파이썬)
biglist =
[
{'title':'U2','link':'u2.com'},
{'title':'ABC','link':'abc.com'}
]
내가 사용하는 등 많은 방법을 시도 많은 중첩 "... 대한의 ..."그러나 이것은 매우 비효율적이며, 너무 오래.
나는이 접근법을 좋아합니다. 내가 할 수있는 한 가지 방법은 빅리스트를 제자리에 정렬하는 대신 정렬 된 항목 (biglist, key = lambda elt : elt [ 'link'])'을 사용하는 것입니다. biglist를 복사하기 때문에 (일시적으로) 더 많은 메모리를 사용하지만, 응용 프로그램에 따라 큰 데이터 객체를 변경하려고하지 않을 수도 있습니다. –
그래, 좋은 지적이야. – dcrosta
루프 안에서'newbiglist == []'를 제거하면 멋진 스피드 업을 얻을 수 있습니다. 어떻게 그걸 없앨 수 있니? 단순히 newbiglist를'newbiglist = [biglist [0]]'로 초기화하면'newbiglist [-1]'이 참조 할 수있는 것이 항상 있다는 것을 알 것입니다. – steveha