>  기사  >  백엔드 개발  >  목록 및 효율성 분석에서 중복 요소를 삭제하는 세 가지 방법

목록 및 효율성 분석에서 중복 요소를 삭제하는 세 가지 방법

高洛峰
高洛峰원래의
2016-10-19 17:12:501755검색

방법 1:

목록 개체의 sort() 메서드를 사용하여 목록을 정렬하고, 마지막 요소부터 시작하여 목록을 반복하고, 인접한 두 요소가 동일한지 확인합니다!

def methodOne(list):
    list.sort()
    lenList = len(list)
    lastItem = list[lenList-1]
    for i in range(lenList-2,-1,-1):
        if list[i] == lastItem:
            list.remove(list[i])
        else:
            lastItem = list[i]
    return list

방법 2:

임시 목록을 정의하고, 루프에서 반복되는 요소가 임시 목록에 없으면 추가하고, 드디어 임시 목록을 반환합니다!

def methodTwo(list):
    tempList = []
    for i in list:
        if not i in tempList:
            tempList.append(i)
    return tempList

방법 3:

lists=[20,12,34,12,24,34,55,27]
print list(set(lists))

1. 방법 1 친척 두 번째 방법의 경우 정렬 및 할당과 같은 추가 작업이 더 있습니다. Python에서는 변수가 불변이기 때문에 요소가 반복되고 비교될 때마다 새 지역 변수를 생성하고 값을 할당하고 원래 변수를 삭제하는 작업이 수행됩니다. 동시에 더 많은 메모리가 필요합니다. 정렬 작업, 상대 위치를 파괴합니다.

2. 방법 2는 작업을 위한 임시 목록을 생성하며 목록은 요소가 추가될 때마다 원래 목록에 인덱스와 값만 추가하므로 방법 1보다 효율적입니다. !

3. 세 번째 방법은 의심할 여지 없이 세 가지 방법 중 가장 효율적입니다(코드 단순성 및 운영 효율성 측면 모두). set()은 내장 데이터 유형인 "set 유형"입니다. 순차적이며 가치는 독특합니다! 따라서 set() 실행 결과는 set으로 변환하여 중복된 요소를 직접 제거한 후, list()가 set을 다시 목록 형식으로 변환하는 것입니다.

그러나 set()은 정렬 순서를 파괴합니다. 정렬을 유지하려면 list(set(lists))를 sorted(set(lists),key=lists.index)로 변경할 수 있습니다. 🎜>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.