임의의 항목 목록 (예 : 목록 목록)에서 여러 항목을 모두 제거하는 가장 빠른 방법은 무엇입니까? 결과적으로 목록에서 한 번만 나타나는 항목 만 표시되어 모든 중복 항목이 제거됩니다.목록에서 여러 항목을 모두 제거하는 가장 빠른 방법은 무엇입니까?
입력 [[1,2], [1,3], [1,4], [1,2], [1,4], [1, 2]
출력 : [1, 3]]
이 솔루션은 느렸다 :
duplicates = []
output = []
for item in input:
if not item in duplicates:
if item in output:
output.remove(item)
duplicates.append(item)
else:
output.append(item)
목록을 정렬 처음으로 아마, 더 좋은 해결책이 :
output = [item for item in input if input.count(item)==1]
이 솔루션은 빠른입니까? 어떤 아이디어라도 감사합니다.
이 솔루션이 오류를 제공합니다. 어떤 생각을 어떻게 해결할 수 있을까요? – Meilo
아, 그래, 처음에는 목록의 목록을 가지고 싶었어.여기서 중요한 문제는 목록이 변경 가능하기 때문에 목록이 해시 가능하지 않다는 것입니다. 예를 들어 * 튜플 * 목록이 있으면 제대로 작동합니다. 나는 실행하기 전에 튜플로 변환하는 예제적인 방법으로 편집했다. – Amber
고마워, 그건 잘 작동하고 내 초기 솔루션보다 100의 크기에 빠릅니다. 그러나 귀하의 답변을 수락하기 전에 누군가가 그 해결책을 이길 수 있는지 알아 보겠습니다. – Meilo