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() 방법이라고 생각합니다. 서로 비교하고 의견을 공유하십시오.
읽어 주셔서 감사합니다. :)
Reference
이 문제에 관하여(Python 목록에서 중복 항목을 제거합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bl4ckst0n3/remove-duplicate-items-in-list-python-3kn6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)