Python 목록에서 중복 항목을 제거합니다.

파이썬에서 중복 목록 항목을 제거하는 방법은 무엇입니까?



소개



목록에서 중복 항목을 제거하는 몇 가지 옵션과 기능이 있습니다. 이 에세이에서는 모듈(pandas, numpy 등) 없이 일부를 조사할 것입니다.
코딩하자!

단계별: 목록에서 중복 항목 제거



이를 수행하기 위해 먼저 가장 일반적인 방법 중 하나인 for 루프에 의한 반복을 사용할 것입니다. list = [1, 2, 2, 3, 4, 5, 5, ...]와 같은 중복 항목을 포함하는 목록이 있다고 가정합니다. 따라서 루프에서 반복자를 사용하여 목록에서 중복 항목을 제거할 수 있습니다.

   def remove_duplicate(dup_list) -> None:
       result_list = list()
       [result_list.append(i) for i in dup_list if i not in result_list]
       print(f"Result -> {result_list}")


위의 코드가 main 메서드에서 실행되면 출력은 다음과 같습니다.

   if __name__ == "__main__":
      remove_duplicate(dup_list = [1, 2, 2, 3, 3, 4, 5])



   Result List -> [1, 2, 3, 4, 5]


위의 코드에서 볼 수 있듯이 목록을 만드는 데 최적화된 방법을 사용했습니다. 어쨌든 우리가 할 수 있는 다른 옵션을 시도해 봅시다. 다른 하나는 count() 메서드로 원래 목록에서 항목을 제거하는 것입니다. 이전 인스턴스의 반대와 같이 생각하십시오. 새 목록을 만들지 않고 중복 항목만 삭제합니다.

   def remove_duplicate(dup_list) -> None:
       for i in dup_list[:]:
           if dup_list.count(i) > 1:
               dup_list.remove(i)
       print(f"Result List => {dup_list}")

  if __name__ == "__main__":
     remove_duplicate(dup_list = [1, 2, 2, 3, 3, 4, 5])



   Output:
   Result List -> [1, 2, 3, 4, 5]


건너뛰지 않고 항목을 제거하기를 원하기 때문에 for 루프에서 dup_list[:]와 같은 목록을 사용합니다. 목록의 전체 복사본을 사용하지 않는 한 반복자는 제거 후 항목을 건너뜁니다.

여태까지는 그런대로 잘됐다 ! 이제 사전을 사용하여 항목을 제거합니다. 이를 위해서는 fromkeys() 메서드가 필요합니다. 해당 모듈이 무엇인지 모른다면 인터넷에서 검색할 수 있습니다. 이 모듈에는 두 개의 매개변수가 있으며 시퀀스와 값입니다. 값 매개변수는 선택사항이므로 필요한 항목에 따라 다릅니다.

통사론:

dict.fromkeys(sequence, value(optional))



   result = list(dict.fromkeys(dup_list))
   print(f"Result List => {result}")


출력을 확인하십시오.

   Output:
   Result List -> [1, 2, 3, 4, 5]


위의 방법과 유사한 방법이 하나 더 있지만 fromkeys 방법보다 느립니다.

   convert_to_set = list(set(dup_list))
   convert_to_set.sort(key=dup_list.index)
   print(f"Result List => {convert_to_set}")



   Output:
   Result List -> [1, 2, 3, 4, 5]


이것이 이 튜토리얼의 전부입니다. 가장 빠른 방법은 fromkeys() 방법이라고 생각합니다. 서로 비교하고 의견을 공유하십시오.

읽어 주셔서 감사합니다. :)

좋은 웹페이지 즐겨찾기